redis服务高可用性和数据持久化、自动备份

主从简单设置:

修改配置中ip和端口

redis-cli -h 主机ip -p 6379(连接服务)

info replication (查看主从信息)

replicaof 主服务器ip 6379(指定主服务器ip和端口)(在从服务器上做)

replicaof no one (解除主从关系)

哨兵服务(改redis-sentinel.conf)

改4条配置,端口26379

使用RDB文件恢复数据

● 1(+219 /etc/redis.conf(设置存盘间隔为120秒且10个key改变数据自动存盘)

● 2达到存盘频率生成文件 /var/lib/redis/dump.rdb

● 3. cp /var/lib/redis/dump.rdb /opt/ (停止服务,备份文件,恢复则拷文件回去)

使用AOF文件恢复数据

● 1.192.168.88.70:6379> config set appendonly yes ; config rewrite 保存配置 (连接到redis,启用aof文件)

● 2.cp /var/lib/redis/appendonly.aof /opt/ 拷贝到/opt目录 (备份数据)

● 3.cp /opt/appendonly.aof /var/lib/redis/ (先停止服务在备份数据)


RDB:整体化备份,异步执行,备份和回复快速。但占用系统资源,影响redis服务性能,

数据频繁时可能会丢失数据。

AOF:增量备份,追加更新数据,最大程度保证数据完整性。但是比较占磁盘空间

综上所诉:RDB适合备份和恢复数据量大、数据变化不频繁的场景,适合全量备份

AOF更适用于数据变化频繁的场景,更适用于增量备份

字符类型(string):

set name plj ex 10 //变量10秒过期

set class nsd px 10 //变量10毫秒过期

set name plj NX

set name yaya XX

type name //查看类型 》》 类型为string

INCR num //+1

INCRBY num 3 //+3

DECR num //-1

DECRBY num 3 //

append hi " World" # 因为字符串包含空格,需要使用引号 追加字符

strlen name #返回字节数,utf-8编码的的中文占3个字符

getrange zfc 0 -1 //输出第1个到倒数第一个字符(输出全部内容)

列表类型(list):

lpush letter A B C d e //创建变量(输出全倒)

type letter 查看类型 》》》 类型为 list

lrange letter 0 -1 输出全部

"e"2) "d"3) "C"4) "B"5) "A"

llen letter //统计元素个数

lindex letter -2 //倒数第2个 输出单个位置字符

lpop letter 弹出头部元素(删除)

rpop letter 弹出尾部元素(删除)

rpush letter e f 尾部追加元素

linsert letter before C C2 值C前插入C2

linsert letter after C C3 值C后插入C3

散列类型(hash)

列名:值,列名:值....格式)

HMSET user1 email bob@tedu.cn phone 13412345678

type user1 查看类型 》》类型为hash

HGETALL user1 //获取所有列名及对应的值

HDEL user1 age // 删除列

HKEYS user1 //只获取列名

HVALS user1 //只获取值

HLEN user1 //获得列数量

集合类型(set)

无序集合中的每个元素都是不同的,且没有顺序

sadd mylike film music game 创建

type mylike 查看数据类型 》》》类型为set

sadd mylike sleep game it 追加,自动删除重复的值

srem mylike sleep game 删除成员

SMEMBERS mylike 查看成员

判断元素是否在集合中:

sismember mylike game 输出0表示不存在

sismember mylike music 输出1表示存在

scard mylike //输出成员个数

sunion mylike helike 并集:合并2个集合的成员,重复的成员只显示一次

sinter mylike helike 交集 输出2个集合中相同的成员

sdiff mylike helike 差集: 比较2个集合成员的不同,用第一个集合 与 第二个集合比较

srandmember helike 2 # 在集合helike中随机取出2个不同成员

srandmember helike -2 随机取出两个成员,允许获取2个相同的成员

有序集合(zset)

zadd scores 88 tom 90 jerry 75 bob 92 alice 创建变量

type scores 查看类型 》》 zset

zcard scores 统计成员个数

zrange scores 0 -1 输出成员名称

zscore scores tom 获得某个成员的值

zcount scores 80 90  获得指定分数范围内的元素个数

zrangebyscore scores 80 90 withscores 获得指定分数范围的元素

zincrby scores 3 bob - 增加某个元素的分数

zrem scores bob  删除元素

zrank scores tom # 获取tom的排名,升序排列,从0开始计数

zrevrank scores alice # 获取alice的排名,降序排列,从0开始计数