redis
文章平均质量分 60
be5yond
不想成为全栈的网络工程师不是好测试开发
展开
-
【Redis】利用redis轻松处理经纬度坐标点数据
Redis 3.2 之后,支持地理坐标数据的管理。将给定的坐标元素(纬度、经度、名字)添加到指定的键里面。 这些数据就会以有序集合的形式被储, 可以通过GEORADIUS 计算两个坐标点的距离,或者使用GEORADIUS 和 GEORADIUSBYMEMBER查询某个坐标半径内的数据。下面对其中常用的命令进行一个简单的介绍。1. GEOADD将坐标信息添加到指定的键里面。GEOADD key longitude latitude member [longitude latitude membe.原创 2021-10-18 15:08:15 · 3991 阅读 · 0 评论 -
【Redis】解决集群模式下 (error) CROSSSLOT Keys in request don‘t hash to the same slot
在启用集群模式的集群上创建由多密钥操作使用的密钥时,请使用哈希标签将密钥强制放入同一哈希槽中。当密钥包含“{...}”这种样式时,只有大括号“{”和“}”之间的子字符串得到哈希以获得哈希槽。例如,密钥{user1}:myset和{user1}:myset2, 因为只有括号内的user1被用作计算哈希,所以会哈希到到相同的哈希槽。172.31.62.135:6379> CLUSTER KEYSLOT {user1}:myset(integer) 8106172.31.62.135:...转载 2021-09-09 14:40:40 · 3450 阅读 · 0 评论 -
【Redis】查看redis服务的版本
1. 客户端查看使用redis-cli 连接到redis, 使用info 命令查看version 信息2. 服务端查看使用redis-server --version 或者 -v 可以查看版本信息# redis-server --versionRedis server v=6.2.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=2a56d1e8c2635a70# redis-server -vRedis server v.原创 2021-10-15 16:34:12 · 3972 阅读 · 0 评论 -
【Redis】键空间通知
1. 功能概览键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件。以下是一些键空间通知发送的事件的例子: 所有修改键的命令。 所有接收到LPUSH key value [value …] 命令的键。 0号数据库中所有已过期的键。 事件通过 Redis 的订阅与发布功能(pub/sub)来进行分发, 因此所有支持订阅与发布功能的客户端都可以在无须做任何修改的情况下, 直接使用键空间通知功能。因为 Redis 目前的..翻译 2021-10-15 17:34:17 · 414 阅读 · 0 评论 -
【Redis】redis为什么那么快
1. 内存型数据库Redis是内存型数据库,大多数操作都是基于内存的。省去了访问硬盘的步骤2. 数据结构2.1 stringstring 类型采用SDS数据结构来存储,通过空间预分配和惰性空间释放,减少内存申请次数,详细文章介绍2.2 zsetzset 采用的跳跃表可以通过不同的层来达到加速访问节点的效果. 详细文章介绍2.3 dictdcit 类型采用渐进式 rehash 技术来对字典数据进行内存的动态扩展和收缩,详细文章介绍3. 单线程Redis的主体模式还是单.原创 2021-09-18 11:03:42 · 139 阅读 · 0 评论 -
【Redis】dict的渐进式rehash原理
1. 字典的实现1.1 哈希表节点hash表节点的定义如下typedef struct dictEntry { // 键 void *key; // 值 union { void *val; uint64_t u64; int64_t s64; } v; // 指向下个哈希表节点,形成链表 struct dictEntry *next;} dictEntry;包含3个元素, key,原创 2021-09-17 15:42:01 · 271 阅读 · 0 评论 -
【Redis】ZSet应用跳跃表(SkipList)提高速度
1. 跳跃表(SkipList)的概念跳跃列表是一种数据结构。它允许快速查询一个有序连续元素的数据链表而其快速查询是通过维护一个多层次的链表,且每一层链表中的元素是前一层链表元素的子集。一开始时,算法在最稀疏的层次进行搜索,直至需要查找的元素在该层两个相邻的元素中间。这时,算法将跳转到下一个层次,重复刚才的搜索,直到找到需要查找的元素为止。跳过的元素的方法可以是随机性选择或确定性选择,其中前者更为常见。1.1 跳表的特点(1)由很多层结构组成;(2)每一层都是一个有序的链表;(..原创 2021-09-16 17:33:08 · 297 阅读 · 0 评论 -
【Redis】string简单动态字符串 SDS
SDS (Simple Dynamic String,简单动态字符串)是 Redis 底层所使用的字符串表示, 几乎所有的 Redis 模块中都用了 sds。本文将对 sds 的实现、性能和功能等方面进行介绍1. redis中的string先执行几个命令可以看到:当设置是整数,底层编码则采用int。 当字符串长度小于等于44,底层编码采用embstr; 当字符串长度大于44,底层编码采用raw;embstr编码是专门用于保存短字符串的一种优化编码方式, 这种编码..原创 2021-09-16 16:01:44 · 235 阅读 · 0 评论 -
【技术分享】Redis介绍presentation (附图片预览)
在线ppt地址:https://be5yond.github.io/redis_intro/图片预览原创 2021-09-09 20:14:12 · 454 阅读 · 0 评论 -
【Redis】 setbit和getbit的作用
对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。位的设置或清除取决于value参数,可以是0也可以是1。可以把此时的字符串,理解成一个二进制字节串,setbit修改对应bit数的值,0或者1下例可以看到10.20.7.58:6379> setbit var 0 1(integer) 010.20.7.58:6379> get var"\x80" 10.20.7.58:6379> setbit var 7 1(i...原创 2021-09-09 16:01:57 · 638 阅读 · 0 评论