更新list中指定下标的值(lset 如果list或者其小标不存在则会报错)

在redis运行过程中,会单独起一个子进程,专门用来备份redis中的数据产生后缀为rdb的一个镜像文件。关于rdb是怎么备份,或者需要什么条件触发rdb,则在f配置文件中配置

备份的触发条件save 900 1 #表示900秒内有一次更新插入操作,则备份一次save 300 10 #表示300秒内有10次更新插入操作,则备份一次save 60 10000 #表示60秒内有10000次更新插入操作,则备份一次

aof是备份文件的方式来备份数据的,默认情况下是没用开启aof机制的,aof是不断的添加读写到文件里

rdb优点:1、rdb的备份机制是开启一个子进程操作运行的,不影响redis的使用性能2、rdb备份效率比aof要高,aof是以文件备份的,如果数据量大会影响到io的一个操作,而rdb则不会aof的优点1、aof相对rdb可能备份的数据更全面,因为aof是以每秒备份一次

一般情况下redis至少要搭建三台主机,实现一主二从,实行主从复制(主从复制是单项的,只能是从复制主的),读写分离,只能主的写入,从的读取,减缓服务器的一个压力

当主服务器宕机后,哨兵能监控到主机是否出现故障,并且通过投票(可能会存在多个哨兵,相互监督)的模式会自动的从从机选择一台为主机哨兵:哨兵是一个独立的进程,哨兵会向主从服务器发生信息维持心跳来检测服务器是否运行正常

哨兵的配置是在sentinel.conf中配置,有以下步骤1、命令如下:sentinel monitor#master-name表示被监控的名称,自己随便命名#quorum是用来识别故障的,真正执行故障转移的时候,还是要在哨兵集群执行选举,选举一个哨兵进程出来执行故障转移操作假设有5个哨兵,quorum设置了2,那么如果5个哨兵中的2个都认为master挂掉了; 2个哨兵中的一个就会做一个选举,选举一个哨兵出来,执行故障转移; 如果5个哨兵中有3个哨兵都是运行的,那么故障转移就会被允许执行例子:sentinel monitor mymaster 127.0.0.1 6379 22、启动哨兵监控进程 redis-sentinel启动命令:./redis-sentinel /root/myz/redis/redis-5.0.4/sentinel.conf如果有多个哨兵,则需要修改哨兵的端口

哨兵模式当宕机的主机恢复后, 并不能再次成为主机,而是成为从机优点:1、哨兵集群,基于主从复制,主更改,从只读取,所有主从配置的优点,它全有2、主从可以切换,故障转移,系统的高可用3、哨兵模式就是主从模式的升级,手动到自动,更加健壮缺点:1、redis不好在线、实现哨兵模式的配置其实很麻烦,里面有很多的选择

定义:布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免对底层存储系统的查询压力

1、空值被缓存起来,意味着需要更多的缓存空间,因为其值是空值,所以导致浪费了很多的空间2、即使设置了过期时间,还会存在在缓存层和数据库持久层会有一端时间的不一致,这对于需要保持数据一致性的业务要求会有影响

2、分布式锁,使用分布式锁,保证对于每一个key,只能有一个线程去查询服务,其他线程只能等待,这种方式就是把压力给到了分布式锁上。

2、限流降级:在缓存失效后,通过加锁或者队列来控制读写数据库写缓存的线程数量,比如某个key只允许一个线程查询数据和写缓存,其他线、布隆过滤器定义:布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免对底层存储系统的查询压力

1、空值被缓存起来,意味着需要更多的缓存空间,因为其值是空值,所以导致浪费了很多的空间

2、分布式锁,使用分布式锁,保证对于每一个key,只能有一个线程去查询服务,其他线程只能等待,这种方式就是把压力给到了分布式锁上。

2、限流降级:在缓存失效后,通过加锁或者队列来控制读写数据库写缓存的线程数量,比如某个key只允许一个线程查询数据和写缓存,其他线、在设置缓存失效时间时,避免所有的key设置一个失效时间,尽量错开。

希望能对大家进一步学习redis这项技术有帮助,欢迎大家关注我的订阅号(阿金学java)一起学习

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注