
Redis
Redis笔记
Coooooooooool.
这个作者很懒,什么都没留下…
展开
-
图解:Redis集群的三种模式
##Redis集群的三种模式图解主从复制哨兵模式Cluster集群原创 2021-05-08 09:31:17 · 175 阅读 · 0 评论 -
Redis的持久化机制-带图详解
Redis的持久化机制1.先来说一下为什么要把Redis持久化?因为Redis中的数据都在缓存里面,如果服务器重启或者是宕机,那么Redis的缓存数据将会丢失,为了保障数据安全,所以要将Redis持久化,还有就是持久化方便做数据备份。知道了为什么,下面我们讨论讨论怎么做????2.Redis的两种持久化方式:RDB:RDB通过快照的方式,获取某个时间点上的内存数据的副本,来时AOF:...原创 2021-05-07 11:00:42 · 176 阅读 · 0 评论 -
Redis的过期删除策略
Redis的过期删除策略通过上一篇文章,我们知道了,Redis为什么要设置过期时间以及是如何存储过期时间的,那么就产生了一个新问题,过期的缓存数据要如何删除?这篇文章我们就来讨论这个问题Redis常用的过期数据的删除策略有两个:????惰性删除: 指的是只有当取出key的时候才顺便进行过期检查,如果过期就删除,优点:这样消耗的CUP少,因为是顺便一起就检查了,不需要额外读取key消耗cpu缺点:这种懒惰的策略,注定导致很多过期数据都无法被检查,容易堆积导致OOM⏳定期删除: 每隔原创 2021-05-06 03:12:23 · 562 阅读 · 1 评论 -
Redis给缓存数据设置过期时间
1.Redis为什么要给缓存数据设置过期时间?因为Redis的缓存数据是存在内存中的,而内存容量有限,要是缓存数据一直堆积的话,很容易造成内存溢出OOM有的时候是因为业务需求,比如商品秒杀时间结束,缓存数据自动失效,设想一下要是没有过期策略,你就得自己去写逻辑判断2.如何设置过期时间?字符串类型: setex 命令其他类型:expire 命令移除一个键的过期时间: persist 命令3.Redis 是如何判断数据是否过期的呢?Redis 通过一个叫做过期字典(可以看作是原创 2021-05-06 02:33:16 · 2846 阅读 · 1 评论 -
为什么Redis要使用单线程
????为什么Redis要使用单线程?Redis6.0之后为什么又引入了多线程?1.先说说为什么Redis要使用单线程使用单线程模型能带来更好的可维护性,方便开发和调试;使用单线程模型也能并发的处理客户端的请求 (用IO多路复用)Redis 的性能瓶颈都不是 CPU,而是网络I/O延时和内存2.那为啥6.0之后又引入了多线程呢?其实Redis早在4.0就引入了多线程,但是只是加入了一些可以被其他线程异步处理的删除操作,比如UNLINK、FLUSHALL ASYNC 和 FLUSHDB AS原创 2021-05-06 01:26:33 · 767 阅读 · 0 评论 -
Redis的常用数据结构
Redis的常用数据结构1.stringstring 数据结构是简单的 key-value 类型常用命令: set,get,strlen,exists,dect,incr,setex应用场景 :常用在需要计数的场景,比如用户的访问次数、热点文章的点赞转发数量2.listlist 是双向链表,易于插入删除,但是随机访问比较困难常用命令: rpush,lpop,lpush,rpop,lrange、llen应用场景: 发布与订阅或者说消息队列、慢查询3.hashhas原创 2021-05-05 19:22:24 · 517 阅读 · 1 评论