![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 67
Thomson Zhu
这个作者很懒,什么都没留下…
展开
-
redis的数据类型以及使用场景
redis主要有5中数据类型:String、Hash、List、Set、Sorted Set一、StringString类型是属于redis中最基本的类型,可以认为String类型可以存储任意类型的数据,比如普通的字符串、图片、序列化对象等,每个key所存储的value最大为512M常用命令set key value [ex seconds] [px milliseconds]#设置指定的key的值(可以加ex 5表示过期时间5s)get key #获取指定的key的值mset ke原创 2021-03-24 05:28:25 · 142 阅读 · 0 评论 -
居于redis + lua脚本实现的滑动窗口
一、前言我们常常使用滑动窗口实现限流操作,在单机时我们经常放在内存中实现,而在做全局接口限流时,我们除了可以通过查询接口调用记录外,还可以通过依赖redis实现的滑动窗口进行,比如限制1分钟可调用1000次,一小时可调用10000次。二、滑动窗口的基本要素和操作1、一个固定长度的循环队列2、每个时间片的时长,可以是按秒、分、时。。。3、每个时间窗口长度,由多个时间片组成一个时间窗口,也就是所需的一段时间4、当前时间的所在时间片的索引5、初始化循环队列的方法6、选择当前时间所在原创 2021-03-23 08:49:54 · 771 阅读 · 0 评论 -
redis线程模型以及高性能分析
前言 我们都知道redis的访问响应非常快,常常用redis来做缓存、消息队列、发布订阅等,支撑系统实现高性能、高并发。但redis是如何具有这样的能力的呢?一、redis的线程模型 redis是一个单线程的文件事件处理器,在redis的线程模型中,redis的文件事件处理器包含了五个部分的内容:多server socket、IO多路复用程序、socket事件队列、文件事件分派器、三种事件处理器(连接应答事件处理器、命令请求事件处理器、命令回复事件处理器),而redis之所以认为是单线程的,是因为原创 2021-03-23 06:59:38 · 89 阅读 · 0 评论 -
redis的过期、内存淘汰策略以及所使用的算法
一、redis过期策略 当我们通过set命令保存某些数据的时候,可以指定过期时间,使缓存到时间后失效。但当redis中的key数量随着时间推移逐渐增长,我们常常发现某批量的key到时间应当过期删除了,但实际发现内存并没有得到释放,这就涉及到redis过期策略问题,redis的过期策略有两种:定期删除以及惰性删除。1、定期删除 (1)redis每隔100ms就会随机抽取一些设置了过期时间的key检测是否过期,如果过期了就删除掉。也就是说redis并不是每次都检查所有的有过期时间的key,那样会引发很原创 2021-03-23 06:52:41 · 172 阅读 · 0 评论