配置主从复制
一主多从结构
配置一主一从结构
修改配置文件
配置salve服务器
配置带验证的主从复制
查看密码,默认redis服务没有密码
192.168.88.61:6379> config get requirepass
设置密码 192.168.88.61:6379> config set requirepass 123456
输入密码 192.168.88.61:6379> auth 123456
保全配置 192.168.88.61:6379> config rewrite
[root@localhost ~]# grep -n -i "requirepass" /etc/redis.conf
查看配置文件
配置主机host62
grep -n -i "masterauth" /etc/redis.conf
主从结构,下载redis 修改vim /etc/redis.conf 69 bind 192.162.88.62 设置服务的ip地址
指定主服务器ip地址 和 端口号 192.162.88.62.:6379> replicaof 192.162.88.61 6379
查看文件末尾 tail -1 /etc/redis.conf
查看角色 192.168.88.61:6379> info replication
一主多从结构 192.168.88.63:6379> replicaof 192.168.88.61 6379 指定主服务器ip地址和端口号
配置主从从结构 把host63恢复为独立的redis服务器,然后配置为host62的从服务器
192.168.88.63:6379> replicaof no one 恢复为独立的数据库服务器
192.168.88.63:6379> replicaof 192.168.88.62 6379 指定主服务器为62
config rewrite 保存配置
主设置密码 从192.168.88.62:6379> config set masterauth 123456 指定主服务器密码
哨兵服务
- 配置主机Host67为master服务器
- 配置主机host68为 slave服务器
- 配置主机host69运行哨兵服务
配置主机host69运行哨兵服务
停止master主机的redis 服务,原slave角色会升级为主,哨兵服务会自动监视新的master服务,宕机的master 主机恢复后自动配置为当前主的从服务器。
停止master主机的redis 服务
持久化
RDB文件恢复数据
AOF
数据类型
字符类型:
- 一个变量只能存一个值set getrange strlen append
- decr decrby incr incrby incrbyfloat
set 命令完整格式演示
设置变量的有效期 px(毫秒) ex (秒) XX 覆盖赋值 NX 不覆盖赋值
set gender girl ex 20 NX
增加指定的整数 INCRBY INCR
递减数字 DECR DECRBY
向尾部追加值 append
set hi Hello //创建变量hi append hi " World" get hi "Hello World
获取字符串长度 strlen strlen hi
获取变量部分数据 getrange set zfc ABCEF getrange zfc 0 1 //输出第1个到第2个字符
type name //查看类型
列表类型
一个变量可以存多个值,多个值用下标区分
- lpush llen lrange lpop
- rpush lindex lset rpop linsert
LPUSH命令用来向列表左边增加元素,返回值表示增加元素后列表的长度
lpush letter A B C
type letter 查看类型
取出列表所有元素 lrange letter 0 -1
统计元素个数 llen letter
通过下标输出单个元素 第1个元素下标用0表示 第2个元素下标用1表示
最后一个元素下标用-1表示 lindex letter 0
lset修改元素 lset letter 0 E 修改第1元素
弹出元素(删除元素)
lpop letter 弹出头部元素 rpop letter 弹出尾部元素
尾部追加元素 rpush letter e f 尾部追加元素
插入元素
linsert letter before C C2 值C前插入C2
linsert letter after C C3 值C后插入C3
散列类型
一个变量可以存多个值 ,通过名字区分值,可以通过名字获取不同的值
- hset hmset hgetall hkeys hvals
- hget hmget hdel
赋值与取值
hset user1 name bob 创建变量
hget user1 name 查看name列的值
设置多个字段
hmset user1 email bob@tedu.cn phone 13412345678
hmget user1 email phone
获取所有列名及对应的值 hgetall user1
删除列 hdel user1 age
只获取列名 hkeys user1
只获取值 hvals user1
获得列数量 hlen user1
集合类型
无序集合 set: 一个变量可以储存多个值,无序集合中的每个元素都是不同的,且没有顺序
sadd smembers scard srem sinter sunion sdiff
sismember srandmember spop
创建/追加/删除/查看
sadd mylike film music game 创建
type mylike 查看数据类型
sadd mylike sleep game it 追加,自动删除重复的值
srem mylike sleep game 删除成员
smembers mylike 查看成员
判断元素是否在集合中 :
sismember mylike game 输出0表示不存在
sismember mylike music 输出1表示存在
输出成员个数 scard mylike
查看 mylike 成员 smembers mylike
创建helike变量 sadd helike film music game sleep
合并2个集合的成员,重复的成员只显示一次
sunion mylike helike
交集 输出2个集合中相同的成员 sinter mylike helike
差集: 比较2个集合成员的不同,用第一个集合 与 第二个集合比较
sdiff mylike helike sdiff helike mylike
随机获得集合中的成员
在集合helike中随机取出两个成员,允许获取2个相同的成员。
集合中随机弹出一个成员
有序集合:
zadd zrem zcard zrange zscore zcount
zincrby zrank zrevrank
ZADD命令的返回值是新加入到集合中的元素个数
zadd scores 88 tom 90 jerry 75 bob 92 alice 创建变量
type scores 查看类型
zcard scores 统计成员个数
zrange scores 0 -1 输出成员名称
zrange scores 0 -1 withscores 输出成员名称及对应的值
获得某个成员的值 zscore scores tom
获得指定分数范围的元素 zrangebyscore scores 80 90 withscores
-增加某个元素的分数 zincrby scores 3 bob
获得指定分数范围内的元素个数 zcount scores 80 90
删除元素 zrem scores bob
-
获得元素的排名