redis
支持数据持久化,支持多种数据类型,支持数据备份
性能高,数据类型丰富,支持事务,支持订阅、消息队列
安装
官方编译安装
[root@redis:/usr/local/redis-4.0.0]# yum -y install gcc gcc-c++
[root@redis:~]# wget http://download.redis.io/releases/redis-4.0.0.tar.gz
[root@redis:/usr/local/redis-4.0.0]# tar xf redis-4.0.0.tar.gz -C /usr/local/
[root@redis:/usr/local/redis-4.0.0]# cd /usr/local/redis-4.0.0/
[root@redis:/usr/local/redis-4.0.0]# make
[root@redis:/usr/local/redis-4.0.0]# make test
[root@redis:/usr/local/redis-4.0.0]# make install
# 安装报错You need tcl 8.5 or newer in order to run the Redis test
yum install -y tcl-devel
make distclean
make
make test
yum安装
# 配置镜像源https://developer.aliyun.com/mirror/
# 安装
yum --enablerepo=epel -y install redis
启动
# 启动
service redis start
redis-server /usr/local/redis-4.0.0/redis.conf
# 启动并后台运行
nohup redis-server &
# 配置后台启动
vim redis.conf
daemonize yes
# 关闭命令
redis-cli shutdown
# 命令行客户端启动
redis-cli
# 指定端口
redis-cli -p 6379
# 指定端口后台启动
redis-server --port 6379 &
# 查看端口、版本
[root@redis:~]# redis-cli info|grep redis_version
redis_version:4.0.0
[root@redis:~]# redis-cli info|grep tcp_port
tcp_port:6379
开机启动
[root@redis:~]# mkdir -p /etc/redis/
[root@redis:~]# cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6379.conf
[root@redis:~]# cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6379
[root@redis:~]# chmod +x /etc/init.d/redis-6379
[root@redis:~]# chkconfig redis on
# 文件头部加这两行不报错:服务 redis-6379 不支持 chkconfig
[root@redis:~]# head -2 /etc/init.d/redis-6379
#chkconfig: 2345 90 10
#description: redis is a persistent key-value database
# 命令行查看相关参数
[root@redis:~]# redis-cli
127.0.0.1:6379> config get *
# 添加密码
[root@redis:~]# grep 'requirepass' /etc/redis/6379.conf
requirepass 111
# 重启
[root@redis:~]# /etc/init.d/redis-6379 stop
[root@redis:~]# /etc/init.d/redis-6379 start
# 登录
[root@redis:~]# redis-cli -a 111
# 或者
[root@redis:~]# redis-cli -h 192.168.79.137
127.0.0.1:6379> auth 111
OK
# 设置监听端口bind ip
[root@redis:~]# grep 'bind' /etc/redis/6379.conf
bind 192.168.79.137
[root@redis:~]# /etc/init.d/redis-6379 stop
[root@redis:~]# /etc/init.d/redis-6379 start
[root@redis:~]# netstat -lntup|grep redis
tcp 0 0 192.168.79.137:6379 0.0.0.0:* LISTEN 11430/redis-server
# 登录需要指定ip
[root@redis:~]# redis-cli -h 192.168.79.137 -a 111
主从架构
# 主:192.168.79.137:6379 (不要设密码)
[root@redis:~]# cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6379.conf
[root@redis:~]# cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6379
[root@redis:~]# egrep '^port|^bind|^slaveof|^masterauth|^daemonize|^protected-mode|^requirepass' /etc/redis/6379.conf
bind 192.168.79.137
protected-mode yes
port 6379
daemonize yes
masterauth <master-password>
[root@redis:~]# redis-cli -h 192.168.79.137 -p 6379
192.168.79.137:6379> auth 111
OK
192.168.79.137:6379> info Replication
# Replication
role:master
192.168.79.137:6379> get name
# 从:192.168.79.137:6380
[root@redis:~]# cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6380.conf
[root@redis:~]# cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis-6380
[root@redis:~]# sed -ri 's#REDISPORT=6379#REDISPORT=6380#g' /etc/init.d/redis-6380
[root@redis:~]# egrep '^port|^bind|^slaveof|^masterauth|^daemonize|^protected-mode' /etc/redis/6380.conf
bind 192.168.79.137
protected-mode no
port 6380
daemonize yes
slaveof 192.168.79.137 6379
masterauth 111
# 启动
[root@redis:~]# /etc/init.d/redis-6380 start
[root@redis:~]# redis-cli -h 192.168.79.137 -p 6380 -a 111
192.168.79.137:6380> info Replication
# Replication
role:slave
192.168.79.137:6380> keys *
1) "name"
基本操作
# 命令行客户端启动
redis-cli
# 测心跳
[root@redis:~]# redis-cli
127.0.0.1:6379> ping
PONG
# 设置mykey键的值
127.0.0.1:6379> set mykey hello
# 获取mykey键的值
127.0.0.1:6379> get mykey
# 设置mykey失效事件
127.0.0.1:6379> expire mykey 2
# 查看当有redis配置信息
127.0.0.1:6379> config get *
# 获取所有的key
127.0.0.1:6379> keys *
# 删除redis当前数据库中所有key
127.0.0.1:6379> flushdb //删除当前库的所有
127.0.0.1:6379> flushall //删除所有数据库
# 查看 key 数量 dbsize
127.0.0.1:6379> dbsize
# 退出客户端命令
127.0.0.1:6379> quit或者exit
# DB 切换 select(Redis 默认有 16 个数据库);默认使用的是 0 号 DB,可以通过 select db 索引来切换 DB
127.0.0.1:6379> select 3
# 查看各种不同类型的命令的执行统计信息
127.0.0.1:6379> info commandstats
数据类型
Redis 中存储的数据整体是一个 Map,其 key 为 String 类型,而 value 则可以是 String、Hash 表、List、Set 等类型。
# 字符串
set name hhh
get name
# hashes
hmset king hhh 123
hgetall king
# list
lpush names zz cc xx
lrange names 0 -1
# 有序set
//withscores 让成员和scores值一并返回
127.0.0.1:6379> zadd program 1 redis
(integer) 1
127.0.0.1:6379> zadd program 2 mysql
(integer) 1
127.0.0.1:6379> zrange program 0 10
1) "redis"
2) "mysql"
127.0.0.1:6379> zrange program 0 10 withscores
1) "redis"
2) "1"
3) "mysql"
4) "2"
监控
# 实时查看性能--stat
[root@redis:~]# redis-cli -p 6379 --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
2 1.81M 1 0 1994 (+0) 4
2 1.81M 1 0 1996 (+2) 4
# 查看内存最大键值和平均键值数据--bigkeys
[root@redis:~]# redis-cli -h -p 6379 --bigkeys
# 查看当前键值情况 --scan
[root@redis:~]# redis-cli -p 6379 --scan
# 原生的monitor监控
127.0.0.1:6379> monitor
配置
daemonize yes # 后台启动
bind 127.0.0.1 # 监听地址
protected-mode no # 保护模式,开启后redis只会本地访问,拒绝外部访问
pidfile /var/run/redis/redis-server.pid # 进程pid写入哪个文件
port 6379 # 监听端口
tcp-backlog 511 # 最大并发队列(实际跟操作系统内核参数[默认128]相关)
timeout 0 # 超时时间
tcp-keepalive 0 # 超时时间
loglevel notice # 指定服务端日志级别(notice、warn、debug)
logfile /var/log/redis/redis.log # 日志文件
#syslog-enabled no # 是否打开记录syslog功能
# syslog-ident redis # syslog标识符
# syslog-facility local0 # 日志的来源设备
databases 16 # 数据库的数量
备份和恢复
备份:通过save或bgsave命令进行手动备份,手动备份会阻塞主进程,建议使用bgsave
恢复:将备份文件(默认dump.rdb)放在redis数据目录下,并在配置文件中设置dbfilename参数为备份文件名,然后启动redis就可以完成数据恢复
标签:127.0,etc,0.1,redis,6379,root From: https://www.cnblogs.com/mononoke/p/17847840.html