随笔分类 -  Redis

摘要:Redis6键的常用命令 # 查看当前库所有的key key * # 判断某个key是否存在 exists key # 查看某个key是什么类型 type key # 删除指定的key del key # 根据value选择非阻塞删除 unlink key # 设置key的过期时间 expire k 阅读全文
posted @ 2022-09-11 23:49 phper-liunian 阅读(99) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记-类型检查与命令多态 ​ Redis用于操作键的命令基本可以分为两种类型。 ​ 其中一种命令可以对任何类型的键执行,如del、expire、rename、type、object命令等。 ​ 举个例子,以下代码就展示了del命令来删除三种不同类型的键: # 字符串键 127.0.0. 阅读全文
posted @ 2020-10-14 14:54 phper-liunian 阅读(105) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记--对象的类型与编码 ​ Redis使用对象来表示数据库中的键和值, 每次当我们在Redis的数据库中创建一个键值对时, 我们至少会创建两个对象, 一个对象用顾总键值对的键(键对象),另一个对象用作键值对的值(值对象)。 ​ 举个例子, 一下set命令在数据库中创建了一个新的键值对 阅读全文
posted @ 2020-10-12 17:12 phper-liunian 阅读(105) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记-Redis字符串内部结构 ​ Redis中的字符串是可以修改的字符串,在内存中它是以字节数组的形式存在。我们知道C语言中的字符串标准形式是以NULL作为结束符, 但是在Redis里面字符串不是这么表示的。因为要获取NULL结尾的字符串的长度使用strlen标准库函数, 这个函数的 阅读全文
posted @ 2020-10-10 18:22 phper-liunian 阅读(152) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记-列表对象 ​ 列表对象的编码可以是ziplist或linkedlist。 ​ ziplist编码的列表对象使用压缩表作为底层实现, 每个压缩表节点(entry)保存了一个列表元素。 举个例子, 若我们执行rpush命令, 那么服务器将创建一个列表对象作为numbers键的值: 1 阅读全文
posted @ 2020-10-09 17:58 phper-liunian 阅读(77) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记-哈希对象 编码 ​ 哈希对象的编码可以是ziplist或hashtable。 ​ ziplist编码的哈希对象使用压缩列表作为底层实现,每当有新的键值对要加入到哈希对象时, 程序会先将保存了键的压缩列表节点推入到压缩列表的表尾, 然后再保存了值得压缩列表节点推入到压缩列表表尾, 阅读全文
posted @ 2020-10-09 17:31 phper-liunian 阅读(71) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记-集合对象 ​ 集合对象的编码可以是intset或hashtable。 ​ intset编码的集合对象使用整数集合作为底层实现, 集合对象包含的所有元素都被保存再整数集合里。 ​ 举个例子, 以下代码将创建如下所示的intset编码集合对象: 127.0.0.1:6379> sad 阅读全文
posted @ 2020-10-09 17:22 phper-liunian 阅读(83) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记-有序集合对象 ​ 有序集合的编码可以是ziplist或者skiplist。 ​ ziplist编码的压缩表对象使用压缩表作为底层实现, 每个集合元素使用两个紧挨在一起的压缩表节点来保存, 第一个节点保存元素的成员(member), 而第二个元素则保存元素的分值(score)。 ​ 阅读全文
posted @ 2020-09-28 10:54 phper-liunian 阅读(167) 评论(0) 推荐(0) 编辑
摘要:Redis LRU 应用背景 ​ 当Redis内存超出物理内存限制时, 内存的数据会开始和磁盘产生频繁的交换(swap)。交换会让Redis的性能急剧下降, 对于访问量比较频繁的Redis来说, 这样龟速的存取效率基本上等于不可用。 ​ 在生成环境中我们是不允许Redis出现交换行为的, 为了限制最 阅读全文
posted @ 2020-09-27 15:51 phper-liunian 阅读(157) 评论(0) 推荐(0) 编辑
摘要:Redis - 懒惰删除 ​ 一直以来我们认为Redis是单线程的, 单线程为Redis带来了代码的简洁性和丰富多彩的数据结构。不过Redis内部实际上并不是只有一个主线程, 它还有几个异步线程专门用来处理一些耗时操作。 Redis为什么要懒惰删除? ​ 删除指令del会直接释放对象的内存, 大部分 阅读全文
posted @ 2020-09-24 10:43 phper-liunian 阅读(729) 评论(0) 推荐(0) 编辑
摘要:Redis - Scan ​ 在平时线上Redis维护工作中, 有时候需要从Redis实例成千上万的key中找出特定前缀的key列表来手动处理数据。可能是修改它的值, 也可能是删除可以。这里有一个问题,如何从海量的key中找出满足特定前缀的key列表来? ​ Redis提供了一个简单粗暴的指令key 阅读全文
posted @ 2020-09-23 10:01 phper-liunian 阅读(196) 评论(0) 推荐(0) 编辑
摘要:Redis 线程IO模型 ​ Redis是单线程程序! 这点必须铭记。 Redis单线程为什么还能这么快? ​ 因为它所有的数据都在内存中, 所有的运算都是内存级别的运算。正因为Redis是单线程, 所以要小心使用Redis指令, 对于那些时间复杂度位O(n)级别的指令, 一定要谨慎使用,一不小心就 阅读全文
posted @ 2020-09-22 16:36 phper-liunian 阅读(212) 评论(0) 推荐(0) 编辑
摘要:Redis 布隆过滤器 应用场景 ​ 我们知道可以用HyperLogLog数据结构用来进行估数, 它非常有价值,可以解决很多精度不高的统计需求。 ​ 但是如果我们想知道某一个值是不是已经在HyperLogLog结构里面了, HyperLogLog就不能为力了, 它只提供了pfadd和pfcount方 阅读全文
posted @ 2020-09-11 15:45 phper-liunian 阅读(213) 评论(0) 推荐(0) 编辑
摘要:管道(pipeline) ​ Redis管道(pipeline)本身并不是Redis服务器直接提供的技术,这个技术本质上是有客户端提供的,跟服务器没有什么直接关系。 Redis消息交互 ​ 当我们使用客户端对Redis进行一次操作时,客户端将请求传送给服务器,服务器处理完毕后,在将响应回复给客户端。 阅读全文
posted @ 2020-09-11 15:27 phper-liunian 阅读(484) 评论(0) 推荐(0) 编辑
摘要:Redis Geohash ​ Redis在3.2版本后增加了地理位置GEO模块, 意味着可以使用Redis来实现摩拜但这[附近的Mobike]、美团和饿了么[附近的餐馆]这样的功能了。 用数据库来算附件的人 ​ 地图元素的位置数据使用二维的经纬度表示, 经度范围(-180, 180], 纬度范围( 阅读全文
posted @ 2020-09-09 15:41 phper-liunian 阅读(954) 评论(0) 推荐(0) 编辑
摘要:Unbuntu 安装redis-cell 插件模块 redis-cell 限流模块 Redis4.0提供了限流Redis模块,它叫redis-cell。该某块也使用了漏斗算法, 并提供了原子的限流指令。 安装步骤 1、查看redis的系统版本 vagrant@homestead:~$ redis-s 阅读全文
posted @ 2020-09-08 11:21 phper-liunian 阅读(306) 评论(0) 推荐(0) 编辑
摘要:漏斗限流 基本思路 ​ 漏斗限流是最常用的限流方法之一, 顾名思义, 这个算法的灵感来源于漏斗的结构。 ​ 漏斗的容量是优先的, 如果将漏斗嘴堵住, 然后一直往里面灌水, 它就会变满, 直至再也装不进去。如果将漏斗嘴放开, 水就会往下流, 水流走一部分后, 就又可以继续往里面灌水。 如果漏斗的流水速 阅读全文
posted @ 2020-09-08 11:18 phper-liunian 阅读(378) 评论(0) 推荐(0) 编辑
摘要:简单限流 ​ 限流算法在分布式领域是一个经常被提起的话题,当系统的处理能力有限时, 如何阻止计划外的请求继续对系统施压, 这是一个需要重视的问题。 ​ 除了控制流量, 限流还有一个应用目的是用于控制用户行为, 避免垃圾请求。比如在用户的发帖、回复、点赞等行为都要严格受控,一般要严格限定某行为在规定时 阅读全文
posted @ 2020-09-07 16:02 phper-liunian 阅读(138) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记--压缩列表 ​ 压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表指包含少量的列表项, 并且每个列表项要么就是小整数值, 要么就是长度比较短的字符串, 那么Redis就会使用压缩列表来做列表键的底层实现。 ​ 例如,执行以下命令将会创建一个压缩列表实现的列表键。 阅读全文
posted @ 2020-09-04 15:21 phper-liunian 阅读(177) 评论(0) 推荐(0) 编辑
摘要:Redis阅读笔记-整数集合 ​ 整数集合(intset)是集合键的底层实现之一, 当一个集合只包含了整数值元素, 并且这个集合的元素数量不多时, Redis就会使用整数集合作为集合键的底层实现。 ​ 举个例子,如果创建一个只包含5个元素的集合键, 并且集合中的所有元素都是整数值, 那么这个集合键的 阅读全文
posted @ 2020-09-04 15:18 phper-liunian 阅读(137) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示