Redis (补充)

本文介绍了Redis中set和sortedset数据结构的命令,包括添加、查询和操作,以及Redis在热点缓存、计数器和排行榜等应用场景的应用。此外,详细讲解了Redis的持久化策略,如RDB快照和AOF日志模式,以及主从和哨兵模式的集群管理。
摘要由CSDN通过智能技术生成

1.set和sortedset类型的命令

1.1. set集合命令

redis中的value类型为set集合类型,特点:无需且不能重复的数据。

sadd key element element... -- 存放set类型的元素。

smembers key -- 获取指定key对应的所有元素。

srandmember key [number] -- 随机获取集合中一个或多个元素

sinter key key -- 求多个集合的交集

spop key -- 随机移除一个或多个元素

1.2. sorted set集合命令

它和set的区别就是在添加元素时需要指定一个分数,该分数用来排序的。

zadd key element score element score -- 添加有序集合

zrange key start end -- 从分数小到大的顺序获取集合中的元素

zrevrange start end -- 返回有序集合中指定区间内的成员,通过索引,分数从高到底

2.redis的应用场景

热点数据的缓存:减少对数据库的访问频率,提供的应用程序的效率

限时业务的运用:比如短信验证码

计数器相关问题:比如点赞关注数

排行榜相关问题:比如销售量、观看量等

分布式锁:比如synchronized自动锁和lock手动锁

3.redis的持久化

什么是持久化:把内存中的数据保存到磁盘的过程。防止数据丢失。

redis持久化的方式:

第一种:RDB快照模式:每一段时间对redis内存中的数据进行拍照存储。

第二种:AOP日志追加模式:把每个写命令通过write函数追加到日志文件中。

3.1RDB快照模式

每一段时间对redis内存中的数据进行拍照存储。他是redis默认的持久化方式。

优点:数据恢复速度快。

缺点:可能会出现丢失最后一段时间的数据,数据完整性比较差。

RDB持久化方式的触发机制有两种方式:

第一种:手动触发

        save和bgsave命令:持久化到磁盘中并且名字叫dump.rdb

        save和bgsave的区别:

save:

该命令会阻塞当前redis服务器,执行save命令期间,redis不能处理其他命令,知道RDB过程完成为止。执行完成时候如果存在老的RDB文件,就把新的代替掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取

bgsave:

执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以相应客户端请求

第二种:自动触发

修改redis的配置文件,底层使用的是bgsave。

测试20秒触发3次改变是否进行rdb持久化

先删除dump.rdb文件

测试:添加k1 k2 k3触发三次改变,成功进行了rdb持久化

3.2AOF日志模式

把每个写命令通过write函数追加到日志文件中。当redis启动时会读取日志文件中的命令,并把这些命令由上到下执行一遍

优点:数据完整性好

缺点:数据恢复慢

默认redis没有开启aof模式。如果需要开启需要修改配置文件

设置之后重启redis服务:多了一个appendonlydir

通过写命令时会保存到日志文件中:

4.redis集群模式

第一种:主从模式

第二种:哨兵模式

第三种:集群分片模式

4.1主从模式

搭建主从模式:原则配从不配主

需要准备三台redis服务,一台主节点(192.168.61.223)两台从节点(192.168.61.224)(192.168.61.225)。

分别启动redis

查看三台redis的角色

info replication

现在三台都为主

配置主从关系:

slaveof ip port

ip:主节点的ip

port: 主节点的port

配置两台从节点

再次查看三台redis的角色

如果主节点增加一些数据,那么所有从节点也会同步数据

主节点可以负责读写操作,但是从节点只负责读操作

如果新增一个从节点,那么该节点可以把主节点的数据同步过来

如果主节点宕机了从节点也不能上位,所以我们需要学习以下的哨兵模式

4.2哨兵模式

如果主节点宕机那么,应该让从节点自动上位,那么就需要哨兵模式

哨兵服务会检测主节点是否有问题,如果有问题则会在从节点中选举出一个作为从节点

准备一台哨兵服务,需要修改配置文件

启动哨兵:

redis-sentinel sentinel.conf

测试关闭主节点:

shutdown

发现主节点关闭后它选举了从节点01最为主节点

测试把MASTER复活,看看slave01是否会把master角色让给MASTER

把master重新启动发现变成了slave。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值