redis
文章平均质量分 82
暮的秋歌
一名嵌入式开发工程师,熟悉stm32, linux
展开
-
redis过期时间
上述笔者写的代码也存在一个非常大的问题,就是排序遍历取全部缓存节点访问频次最少的一个key,如果缓存不多还好,如果达到了千万级别缓存,排序遍历这些key的成本是非常大的,Redis作者在实现lfu算法的时候也有考虑到上述问题,redis新增了pool机制, redis每次都将随机选择的10个key放在pool中,但是随机选择的key的时间戳必须小于pool中最小的key的时间戳才会继续放入,直到pool放满了,如果有新的key需要放入,那么需要将池中最大的一个时间戳的key取出。转载 2022-11-19 16:38:39 · 2707 阅读 · 0 评论 -
Redis实战记录之限制操作频率
在业务开发的过程中,我们不断的参与各种业务场景的方案设计,往往很容易碰到很类似的场景,只不过当前所属的业务模块不一样,其实这些需求的本质是解决同一个问题,当遇到这种场景的时候,我们需要根据自己经验分析抽离出需求的本质问题,实现一个通用的解决方案,让自己的解决方案更有价值,这可能就是区别于你是有灵魂的工程师还是cp(copy paste)最强王者吧。转载 2022-09-27 19:58:08 · 138 阅读 · 0 评论 -
Redis 16 个常见使用场景
如果应用需要显示每天的注册用户数,便可以使用string作为计数器,设定一个名为REGISTERED_COUNT_TODAY的 key,并在初始化时给它设置一个到凌晨 0 点的过期时间,每当用户注册成功后便使用incr命令使该 key 增长 1,同时当每天凌晨 0 点后,这个计数器都会因为 key 过期使值清零。当 A 进入另一个用户 B 的主页后,A:follow和B:follow的交集便是 A 和 B 的共同专注,A:follow和B:follower的交集便是 A 关注的人也关注了 B。转载 2022-09-27 19:39:24 · 103 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性的后端高并发架构解决方案
1.如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则到数据库中读取数据,写入缓存,此时缓存中为脏数据。暂存并发读请求:在更新数据库时,先在 Redis 缓存客户端暂存并发读请求,等数据库更新完、缓存值删除后,再读取数据,从而保证数据一致性。结合双删策略+缓存超时设置,这样最差的情况,就是在超时时间内,数据存在不一致,而且又增加了写请求的耗时。2.如果先写了库,在删除缓存前,写库的线程宕机了,没有删除掉缓存,则也会出现数据不一致情况。转载 2022-09-05 06:39:55 · 234 阅读 · 0 评论 -
predis操作大全
/返回array('key1'=>'v1','key2'=>'v2','key3'=>'v3','key4'=>'v4','key5'=>13)//表示永久性排序,返回元素个数。转载 2022-08-31 17:46:42 · 140 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性的后端高并发架构解决方案
Redisson 分布式锁:利用 Redis 的 hash 结构作为储存单元,将业务指定的名称作为 key,将随机 UUID 和线程 ID 作为 fleld,最后将加锁的次数作为 value 来储存,线程安全。1.如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则到数据库中读取数据,写入缓存,此时缓存中为脏数据。暂存并发读请求:在更新数据库时,先在 Redis 缓存客户端暂存并发读请求,等数据库更新完、缓存值删除后,再读取数据,从而保证数据一致性。...转载 2022-08-31 17:17:29 · 298 阅读 · 0 评论 -
redis基础篇
2、embstr, embstr格式的SDS,存储小于44个字节的字符串。4、大都支持SQL(结构化查询语言)的操作,支持复杂的关联查询。掌握redis基本数据类型的操作命令、底层存储结构、应用场景。1、要实现扩容的话,只能向上(垂直)扩展,不支持动态的扩缩容。5、功能丰富:事务、发布订阅、pipeline、lua。1、存储非结构化的数据,比如文本、图片、音频和视频。3、raw, sds,存储大于44个字节的字符串。2、存储结构化的数据,数据存储有固定的模式。4、支持海量数据的存储和高并发的高效读写。...原创 2022-08-25 17:20:35 · 220 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性的后端高并发架构解决方案
Redis缓存和MySQL数据一致性的后端高并发架构解决方案504播报文章8911itdebug121314架构师,科技领域爱好者15关注17106210123高并发的业务场景,及需求起因24222526272829303132333435363738在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。394041。转载 2022-08-24 13:36:14 · 1565 阅读 · 0 评论