![](https://img-blog.csdnimg.cn/20210125011713359.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
redis高级特性
文章平均质量分 92
欢迎订阅
学nm个锤子
Qtmd
展开
-
Redis主从复制原理刨析
1.初次全量同步当一个redis服务器初次向主服务器发送salveof命令时,redis从服务器会进行一次全量同步1.slave服务器向master发送psync命令(此时发送的是psync ? -1),告诉master需要同步数据了。2.master接收到psync命令后会进行BGSAVE命令生成RDB文件快照。3.生成完后,会将RDB文件发送给slave。4.slave接收到文件会载入RDB快照,并且将数据库状态变更为master在执行BGSAVE时的状态一致。5.master会发送保存在缓原创 2020-08-31 23:36:01 · 340 阅读 · 0 评论 -
redis分布式篇
一,为什么需要redis集群1.性能Redis 本身的 QPS 已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响。这个时候我们希望有更多的 Redis 服务来完成工作。2.扩展第二个是出于存储的考虑。因为 Redis 所有的数据都放在内存中,如果数据量大,很容易受到硬件的限制。升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法。3.可用性第三个是可用性和安全的问题。如果只有一个 Redis 服务,一旦服务宕机,那么所有的客户端都无法访问,会对业务造成很大的影响。另一个,原创 2021-01-27 23:02:55 · 5306 阅读 · 0 评论 -
redis原理篇
一,发布订阅模式1.列表的局限性前面我们说通过队列的 rpush 和 lpop 可以实现消息队列(队尾进队头出),但是消费者需要不停地调用 lpop 查看 List 中是否有等待处理的消息(比如写一个 while 循环)。为了减少通信的消耗,可以 sleep()一段时间再消费,但是会有两个问题:1、如果生产者生产消息的速度远大于消费者消费消息的速度,List 会占用大量的内存。2、消息的实时性降低。list 还提供了一个阻塞的命令:blpop,没有任何元素可以弹出的时候,连接会被阻塞。blpop原创 2021-01-26 23:41:07 · 724 阅读 · 0 评论 -
redis九大数据类型数据结构及底层源码
一,String字符串1.存储原理1)数据模型set hello word 为例,因为 Redis 是 KV 的数据库,它是通过 hashtable 实现的(我们把这个叫做外层的哈希)。所以每个键值对都会有一个 dictEntry(源码位置:dict.h),里面指向了 key 和 value 的指针。next 指向下一个 dictEntry。typedef struct dictEntry { void *key; /* key 关键字定义 */ union { vo原创 2021-01-26 09:27:29 · 1647 阅读 · 0 评论 -
redis数据类型之GEO
原理主要分为三步操作:将三维的地球变为二位的坐标将二维的坐标转换为一维的点块最后将一维的点块转换为二进制在通过base32编码命令redis命令描述GEOHASH返回一个或多个位置元素的geoHash表示GEOPOS从key里返回所有给定位置元素的位置(经度和纬度)GEODIST返回两个给定位置之间的距离GEORADIUS以给定的经纬度为中心,找出某一半径内的元素GEOADD将指定的地理空间位置(经度,纬度,名称)添加导指定的key中G原创 2021-01-27 23:08:04 · 405 阅读 · 3 评论 -
redis五种常用类型的使用场景-内存淘汰策略-LRU算法
一,redis6.0安装相关安装redis6.0.8-linux因为6.0.6有bug,官网声明,linux版本是因为epoll()仅仅支持linux系统,linux才能发挥redis的最佳性能。外网查看redis版本linux系统内查看 redis-server -v redis客户端内查看 info二,五种常用基本数据类型的应用场景redis命令不区分大小写,但是key区分大小写help @string 查看string相关的所有命令1.string同时设置多个键值对 mset k原创 2020-12-22 09:26:02 · 854 阅读 · 3 评论 -
redis的大key和热key问题
1.redis的大key和热keyredis的大key和热key实际上就是经常被访问的key或者占用空间比较大的key。有什么影响?举个栗子,比如说某个明星出轨了,这个明星的搜索量就会暴增,对redis造成很大的冲击。2.热/大key的预估和评审redis查看大key命令redis-cli --bigkeysredis查看热key命令redis-cli --hotkeys1.根据业务经验判断比如做一个秒杀系统,根据要秒杀的商品就可以知道哪些key会成为热key,但是不是所有的业务都能这样原创 2020-11-11 21:11:51 · 2143 阅读 · 0 评论