redis相关的详细介绍,包括三主三从集群的搭建

1. 数据结构

在这里插入图片描述

1.1 String

1.mest批量操作实现json的功能
MEST key value [key value …]

2.点赞文章
incr article:account:{文章ID}

//对文章id是1000的每次加1
incr article:readcount:1000

1.2 hash

  1. hset user 1:name 1:classs

2.实现购物车+1的功能
hset cart:1001 1
hincrby cart:10081 1

hash
优点:性能比string高,内存也占用更少
缺点: 集群分片问题,一个Key只能在一个片上,会发生热点问题
比如userkey下面有4300万用户,则用户都会分到一个片上

//redis分片位置
Hash slot =CRC16(KEY)%16384

为什么redis-cluster使用16384插槽?

3. 如何搭建redis集群

安装Redis的Windows版本并进行配置
搭建 Redis集群,三个主节点,三个从节点

如果不想按照步骤来的话,我这里有我下载好,并且打好的包,直接百度云下载下来,执行少量的步骤就能用百度云地址

3.2 哈希槽

hash槽介绍

测试hash槽分配到集群中的节点

  1. 随便登上一个实例,记得加上参数-c,启用集群模式的客户端,否则无法正常运行。

redis-cli -c -p 6380
结果如下:
127.0.0.1:6380> set hh 11
-> Redirected to slot [12077] located at 127.0.0.1:6382
OK
  1. 可以看到,Redis集群会计算key落在哪个卡槽,然后会把命令转发到负责该卡槽的节点上执行。

利用cluster keyslot命令计算出key是在哪个槽位上,从而得出会跳转到哪个节点上执行。

127.0.0.1:6382> cluster keyslot hh
(integer) 12077
  1. 具体槽位和集群节点怎么分配的呢,
    redis集群模式会将16384个槽slot分到不同的服务器上去,比如:12077/16384=1.35也就会分配到第二个服务器上

  2. redis多主多从集群如图所示,其中至少是三主三从
    在这里插入图片描述


1.4 LIST

在这里插入图片描述

lpush key value Rpush key

栈和队列
阻塞队列 lpush+Brpop

  1. 微信和微博的微信公众号订阅功能
    比如100个大V,1000万人订阅了
    在这里插入图片描述

1.5 SET

是

  1. 抽奖
    SADD

在这里插入图片描述
2. 三等奖抽奖,抽中一等奖的不能再抽二等奖 SPOP
3. 点赞 SADD
在这里插入图片描述
收藏 、标签

  1. set集合操作如并集、差集、交集 ,相互关注的好友才能看到消息
    关注的人,可能认识的人

在这里插入图片描述
5. 排行
在这里插入图片描述

  1. 筛选

在这里插入图片描述

  1. 更多

在这里插入图片描述
基于reids的分布式锁,由于锁超时,第一个进程还没有结束,但是锁超时了,第二个进程重新获取了锁,就会导致第一个进程会把第二个进程的锁删除了

解决方案;对每一格线程加一个唯一ID,比如UUID,雪花ID
适合:只是获取锁,而不进行处理,真正处理在获取锁之后

redission 单机、集群、哨兵模式

redission三行代码,其实就实现了reids的很多操作

1.6 Redis HyperLogLog

介绍的地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值