
Redis
文章平均质量分 82
zhangphh
欲戴王冠,必承其重
展开
-
redis string类型
1、string类型使用场景 计数,如点赞数、限制请求次数、pv/uv等 作为key-value缓存基础数据 存储session,以实现分布式下的共享session 2、数据结构 redis为c语言编写的,但是c语言没有String类型,只有cha[]类型,而且char数组在初始化的时候指定完大小后就不能再改变了。基于此,redis维护了一个自己的数据结构——SDS(Simple Dynamic String)。 SDS兼容C语言标准字符串处理函数,且在此基础上保证了二进制安全。 2.1、二进制安全 在原创 2022-02-11 15:41:28 · 1298 阅读 · 0 评论 -
Redis缓存与MySQL数据一致性问题
概述 引用一张图 理论上来说为key设置过期时间是保证数据一致性的方案,为缓存设置了过期时间,所有的写操作以数据库为准,对缓存做到尽力即可,因为即使缓存时脏数据,过期时间到了之后自然会被淘汰。也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存。 这里讨论的三种策略是不对key设置过期时间的: 先更新数据库,再更新缓存; 先删除缓存,再更新数据库; 现更新数据库,再删除缓存 1、先更新数据库,再更新缓存 这种方案一般不被使用,考虑下面情况 假转载 2020-08-03 19:31:37 · 202 阅读 · 0 评论 -
Redis的分布式寻址算法
概述 Redis的分布式寻址算法有三种: hash算法 一致性hash算法 redis-cluster的hash slot算法 1、hash算法 首先计算哈希值,然后对节点数量取模,此时如果节点增加或者减少必然会导致获取到的缓存数据出错,如果节点宕机甚至还会导致缓存雪崩,导致数据库瘫痪。 2、一致性哈希 一致性哈希把哈希空间形成一个虚拟的环,将key的哈希值取模运算后顺时针走动,遇到的第一个节点就是其存储的位置。如果一个节点挂掉了影响的只是此节点和逆时针走动到上一个节点之间的数据,其他不受影响,增加一个原创 2020-08-03 17:00:09 · 1108 阅读 · 0 评论 -
Redis相关问题
1、redis-cluster集群 使用主从复制当master挂掉之后系统不能自动选举出新的master,系统也就不能对外提供写功能;使用哨兵模式虽然解决了自动选举的问题,但是不能动态扩展,下面介绍redis-cluster。 redis-cluster集群中有多个master节点,每个master都可读可写,节点之间相互通信,redis-cluster集群无中心节点,无需哨兵监控。 常见问题: ①、Redis是如何进行持久化的? Redis是基于内存的,因此持久化是必不可少的,在Redis中持久化有两种方原创 2020-08-03 15:20:39 · 165 阅读 · 0 评论