Redis
zhanghe_zht
这个作者很懒,什么都没留下…
展开
-
redis命令行连接
【代码】redis命令行连接。原创 2023-09-26 12:34:58 · 588 阅读 · 0 评论 -
数据库和缓存一致性问题
在「先更新数据库,再删除缓存」方案下,「读写分离 + 主从库延迟」也会导致缓存和数据库不一致,缓解此问题的方案是「延迟双删」,发送「延迟消息」到队列中,延迟删除缓存,同时也要控制主从库延迟,尽可能降低不一致发生的概率。因为写数据库一般会先「加锁」,所以写数据库,通常是要比读数据库的时间更长的。3、更新数据库 + 删除缓存的时间(步骤 3-4),要比读数据库 + 写缓存时间短(步骤 2 和 5)最终 X 的值在缓存中是 1(旧值),在数据库中是 2(新值),发生不一致。写:先更新数据库,后删除缓存。原创 2023-04-25 17:18:09 · 470 阅读 · 0 评论 -
Redis高可用的三种实现方式
数据在集群模式中是分开存储的,那么节点之间想要知道其他节点的状态信息,包括当前集群状态、集群中各节点负责的哈希槽、集群中各节点的master-slave状态、集群中各节点的存活状态等是通过建立TCP连接,使用gossip协议来进行集群信息传播。哨兵(sentinal)模式则是为了解决这些问题而产生的,它用于对主从模式中每个节点进行监控,当出现故障时通过投票机制,选择新的master节点,并将所有的slave节点连接到master节点。数据写的操作都集中在master上,没有解决master写数据的压力。原创 2023-04-25 16:38:00 · 167 阅读 · 0 评论 -
Redis常见使用场景
但是查找表的内容不能失效,而缓存的内容可以失效,因为缓存不作为可靠的数据来源。当应用服务器不再存储用户的会话信息,也就不再具有状态,一个用户可以请求任意一个应用服务器,从而更容易实现高可用性以及可伸缩性。可以使用 Redis 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。在分布式场景下,无法使用单机环境下的锁来对多个节点上的进程进行同步。Set 可以实现交集、并集等操作,从而实现共同好友等功能。ZSet 可以实现有序性操作,从而实现排行榜等功能。原创 2023-04-25 16:29:10 · 810 阅读 · 0 评论 -
redis设置密码
redis密码原创 2023-01-31 17:39:55 · 140 阅读 · 0 评论 -
redis底层数据结构
字符串(String):动态字符串 SDS列表(List):压缩链表 ziplist和 双向链表 linkedlist哈希(hash):压缩链表 ziplist和散列表hashtable集合(Set):散列表 hashtable有序集合(zset):压缩链表 ziplist和 跳表skiplisthttps://blog.csdn.net/xpsallwell/article/details/84030285https://blog.csdn.net/abel_liujinquan/articl转载 2020-11-13 21:13:41 · 94 阅读 · 0 评论 -
分布式锁 redis zookeeper
在我们进行单机应用开发,涉及并发同步的时候,我们往往采用synchronized或者Lock的方式来解决多线程间的代码同步问题。但当我们的应用是分布式集群工作的情况下,那么就需要一种更加高级的锁机制,来处理种跨机器的进程之间的数据同步问题。这就是分布式锁。redis实现:获取锁String result = jedis.set(key, value, "NX", "PX", expireMillis);if (result != null && result.equalsIgno.原创 2020-10-20 14:50:35 · 138 阅读 · 0 评论 -
redis 大key,热点key
redis大key优化redis热点key转载 2020-10-16 19:56:33 · 344 阅读 · 0 评论 -
redis持久化RDB和AOF
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。优点缺点RDB文件小,恢复速度快时间间隔长,可能丢失的数据多AOF时间间隔短,可能丢失的数据少文件大,恢复速度慢...原创 2020-10-16 15:43:52 · 104 阅读 · 0 评论 -
redis过期机制和淘汰策略
策略描述volatile-lru从已设置过期时间的数据集中挑选最近最少使用的数据淘汰volatile-ttl从已设置过期时间的数据集中挑选将要过期的数据淘汰volatile-random从已设置过期时间的数据集中任意选择数据淘汰allkeys-lru从所有数据集中挑选最近最少使用的数据淘汰allkeys-random从所有数据集中任意选择数据进行淘汰volatile-lfu从已设置过期时间的数据集中挑选访问频率最少的键值对淘汰allkeys...原创 2020-10-16 12:39:22 · 231 阅读 · 0 评论 -
Redis 的雪崩、穿透和击穿
缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就是缓存雪崩。缓存雪崩的事前事中事后的解决方案如下:事前:Redis 高可用,主从+哨兵,Redis cluster,避免全盘崩溃。事中:本地转载 2020-09-29 17:10:25 · 279 阅读 · 0 评论