5000+字硬核干货!Redis 分布式集群部署实战

原理 Redis集群采用一致性哈希槽的方式将集群中每个主节点都分配一定的哈希槽,对写入的数据进行哈希后分配到某个主节点进行存储。 集群使用公式CRC16 key 16384计算键key数据那个槽。 16384个slot均匀分布在各个节点上。 集群中每个主节点将承担一部分槽点的维护,而槽点中存储着数据,每个主节点都有至少一个从节点用于高可用。 节点通信方式 开启一个端口 设置的端口号10...

Mr.Zhang 阅读:174 评论:0 2020-07-03 14:00:20

使用Redis Data Reveal(rdr)查看Redis中key占用内存空间

项目响应速度要求比较高,全部使用Redis缓存这也导致缓存。需要分析各种键占用内存情况进行优化。 redisclient虽然可以很方便的对redis进行操作,但不能查看对应key占用的内存情况,也无法对占用内存的key进行统计分析。我简单的了解一下市面上的可以查看redis中的key的占用的开源中间件,最后决定用Redis Data RevealRDR查看系统中key的占用情况RDR是雪球公...

Mr.Zhang 阅读:111 评论:0 2020-06-30 14:00:46

【原创】强撸 .NET Redis Cluster 集群访问组件

Hello 大家好,我是TANZAME,我们又见面了。今天我们来聊聊怎么手撸一个 Redis Cluster 集群客户端,纯手工有干货,您细品。 随着业务增长,线上环境的QPS暴增,自然而然将当前的单机 Redis 切换到群集模式。燃鹅,我们悲剧地发现,ServiceStack.Redis这个官方推荐的 .NET 客户端并没有支持集群模式。一通度娘翻墙无果后,决定自己强撸一个基于ServiceSt...

Mr.Zhang 阅读:187 评论:0 2020-06-29 14:00:44

Redis 的基本数据类型 和 基础应用场景

1. 获取中奖用户ID,随机弹出之后集合中就不存在了set 2. 存储活动中中奖的用户ID,保证同一个用户不会中奖两次set 3. 存储粉丝列表,value 为粉丝的用户ID,score 是关注时间zset 4. 存储学生成绩,value 为学生的ID,score 是考试成绩zset 5. 记录帖子的点赞数、评论数、和点击率hash 6. 记录用户的帖子ID列表,便于快速显示用...

Mr.Zhang 阅读:110 评论:0 2020-06-27 22:00:22

【原创】强撸基于 .NET 的 Redis Cluster 集群访问组件

Hello 大家好,我是TANZAME,我们又见面了。今天我们来聊聊怎么手撸一个 Redis Cluster 集群客户端,纯手工有干货,您细品。 随着业务增长,线上环境的QPS暴增,自然而然将当前的单机 Redis 切换到群集模式。燃鹅,我们悲剧地发现,ServiceStack.Redis这个官方推荐的 .NET 客户端并没有支持集群模式。一通度娘翻墙无果后,决定自己强撸一个基于ServiceSt...

Mr.Zhang 阅读:415 评论:0 2020-06-19 06:00:14

Redis 数据结构 之 SDS

SDSsimple dynamic string,简单动态字符串。s同时它被称为 Hacking String。hack 的地方就在 sds 保存了字符串的长度以及剩余空间。sds 的实现在 sds.c 中。 C语言字符串使用长度为n1的字符数组来表示长度为n的字符串,并且字符数组的最后一个元素总是空字符'0',这样的方式存储,时存在安全隐患的,并且它不能满足效率方面的需求。 因此Redi...

Mr.Zhang 阅读:375 评论:0 2020-06-18 22:00:25

redis 存储之 redisObject

redisObject redis 是 keyvalue 存储系统,其中key类型一般为字符串,而 value 类型则为 redis 对象redisObject。Redis 对象可以绑定各种类型的数据,譬如 string、list 和set。因此他能很好的将属性和数据分离开。 typedef struct redisObject 刚刚好32 bits 对象的类型,字符串列表...

Mr.Zhang 阅读:33 评论:0 2020-06-18 22:00:25

redis 哨兵

哨兵作用 哨兵sentinel 是一个分布式系统,是程序高可用性的一个保障。用于监视任意多个主服务器,以及这些主服务器属下的所有从服务器,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。 监控 不断地检查master和slave是否正常运行 master存活检测、master与slave运行情况检测。 通知 当被监控地服务器出现问题时,向其他哨兵间,客户...

Mr.Zhang 阅读:481 评论:0 2020-06-18 14:00:36

redis 集群(文档整理)

Redis集群 Redis集群提供了一种运行Redis安装的方法,在该安装中,数据会在多个Redis节点之间自动分片。 Redis集群在分区期间还提供了一定程度的可用性,这实际上是在某些节点出现故障或无法通信时有继续工作的能力。但是,如果发生较严重故障例如,大多数主节点不可用时,集群将停止运行。 实际上,Redis集群能给你带来什么? 自动在多个节点之间拆分数据集的能力。 当一部分节点出现故...

Mr.Zhang 阅读:221 评论:0 2020-06-18 14:00:36

解决使用redisTemplate set方法保存出现\x00\问题

在项目有个需求要保存一个字符串到redis,并设置一个过期时间。这个需求一看非常简单,使用redisTemplate一行代码搞定,代码如下 redisTemplate.opsForValue.set"userKey", data, 10000 但保存后,查看redis发现value的前缀多出了 x00x00x00x00x00x00x00x00x00x00x00x0...

Mr.Zhang 阅读:357 评论:0 2020-06-17 22:00:18

支持一下我的小程序