
redis
文章平均质量分 56
咩哥无敌
这个作者很懒,什么都没留下…
展开
-
Redis清理过期key
1.被动清除当请求一个key时,Redis会判断有没有过期,如果过期则删除key,并返回一个null2.主动删除Redis会随机抽取n(默认为100)个被设置了过期时间的key,检查其中过期的key并删除,如果超过百分比m(默认为25%),则继续抽取n个,直到过期key的百分比小于m3.内存不足时删除Redis允许用户通过配置maxmemory-policy参数,指定Redis在内存不足时的解决策略noeviction:直接返回错误allkeys-lru:使用LRU算法回收使用最少的keyv原创 2021-08-23 18:50:29 · 484 阅读 · 2 评论 -
Redis击穿、穿透、雪崩以及解决方案
击穿描述:发生击穿的前提一定是产生了大量的并发,并且Redis中数据过期,导致所有请求去数据库查,引起数据库压力瞬间增大解决方案1.阻止所有请求都去请求数据库2.Redis是单进程,单实例,所以可以使用setnx()当做互斥锁3.避免出现死锁,对锁加个过期时间4.避免时间过了,但拿到锁的线程还没执行完任务,其他线程又拿到锁也去执行任务,需要再加个线程去监控拿到锁的线程有没有执行完任务,时间过了但没执行完任务就刷新过期时间穿透描述客户端发送的查询请求都是数据库没有的请求,导致服务器浪费大量原创 2021-08-23 16:02:36 · 218 阅读 · 0 评论 -
Redis集群模式Cluster
虽然Redis哨兵模式可以做到故障自动切换,但每台Redis储存相同的数据,很浪费内存,从节点下线后,连接到从的客户端也没办法连接到其他可用的从节点。redis集群模式就能有效的解决这个问题。搭建先新建存放配置文件的文件夹mkdir 7000 7001 7002 7003 7004 7005在每个配置文件夹中创建redis.conf,下列配置是最少选项的集群的配置文件,记得将port修改成对应文件夹的端口port 7000cluster-enabled yescluster-config-原创 2021-08-21 22:22:17 · 936 阅读 · 0 评论 -
Redis哨兵模式
简介使用主从模式有一个很大的问题,一旦主挂了后,整个Redis就没写的功能了。哨兵模式是Redis提供的一种高可用方案,Sentinel可以监控Redis服务的工作情况,在多个Sentinel进程环境下互相协作工作。该系统执行以下三个任务:监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。自动故障迁原创 2021-08-19 16:19:56 · 122 阅读 · 2 评论 -
Redis主从模式
搭建环境搭建1主2从的模式,先准备好配置文件cp ./redis.conf /home/redis/6379cp ./redis.conf /home/redis/6380cp ./redis.conf /home/redis/6381修改配置文件修改主的持久化文件地址vim /home/redis/6379/redis.conf将配置文件中dir修改如下dir /home/redis/6379修改两个从的端口号、持久化文件地址、连接主的地址第一个从vim /home/redi原创 2021-08-18 22:15:13 · 210 阅读 · 1 评论 -
Redis中AOF持久化
简介AOF通过保存Redis中写操作的命令来记录数据状态优点丢失数据少,4.0以后的版本AOF包含RDB的全量数据与新的写操作的记录弊端体量无限变大,恢复慢配置将redis.conf中appendonly设置为yes就算开启AOF,AOF和RDB可同时开启,如果开启了AOF只会用AOF恢复appendonly yes启动redis时,下列日志表示从AOF加载数据DB loaded from append only file: 0.000 seconds随着Redis写操作不断变多,原创 2021-08-17 15:08:24 · 160 阅读 · 1 评论 -
Redis 中RDB持久化
RDB持久化简介RDB 持久化以指定的时间间隔执行数据集的时间点快照。恢复时是将快照文件直接读到内存里。触发方式RDB有两种触发方式,分别是主动触发和被动触发1.被动触发N 秒内数据集至少有 M 个改动这一条件被满足时,自动保存一次数据集例如下列配置表示60秒内有10000次操作会保存一次数据save 60 100002.主动触发① save使用save会阻塞线程,使redis不可对外提供服务,直到RDB备份完成,一般在停机维护的时候才会使用②bgsaveredis使用fork开启原创 2021-08-17 09:47:27 · 171 阅读 · 0 评论 -
Redis发布订阅
订阅消息指令,一个客户端可以监听多个频道的消息 SUBSCRIBE channel [channel ...] summary: Listen for messages published to the given channels since: 2.0.0 group: pubsub向通道推送消息的指令 PUBLISH channel message summary: Post a message to a channel since: 2.0.0 group: pub原创 2021-08-16 19:55:05 · 97 阅读 · 0 评论 -
Redis五大基本数据类型
Stringredis的string类型可以把它想成Byte,它有关于字符串、字节数组、数值、位图bitmap的操作set命令127.0.0.1:6379> set k1 helloOK127.0.0.1:6379> get k1"hello"可以看出 set命令除了接 key value,还可以追加过期时间,还有两个值[NX|XX],nx的意思是不存在的时候才去设置,可以当做分布式锁使用,哪个线程设置成功了代表拿到了锁,xx的意识是存在的时候采取设置。除了单挑的get se原创 2021-08-15 20:55:56 · 301 阅读 · 0 评论 -
Linux下Redis安装
下载、解压、编译Rediswget http://download.redis.io/releases/redis-6.0.8.tar.gztar xzf redis-6.0.8.tar.gzcd redis-6.0.8**make默认启动方式cd src./redis-server指定配置文件启动方式./redis-server …/redis.conf使用测试客户端程序 redis-cli 和 redis 服务交互cd src./redis-cli...原创 2021-08-15 01:24:51 · 112 阅读 · 0 评论