Redis消息队列在程序员这个圈子打拼了太多年,见过太多的程序员使用redis,其中一部分喜欢把redis做缓存(cache)使用,其中最典型的当属存储用户session,除此之外,把redis作为消息队列使用也不在少数,可见redis在互联网中应用是多么的广泛。redis作为消息队列使用,redis支持的数据结构是可以支撑这类业务,主要是利用了list这种数据结构的特性。Redis的列表相当
# 如何实现redis zset限制长度 ## 整体流程 ```mermaid gantt title 实现redis zset限制长度流程 section 创建zset 创建zset: done, 2021-10-10, 1d section 添加元素 添加元素: done, 2021-10-11, 2d section 删除超出范围元素
原创 2024-04-01 05:51:10
129阅读
Redis 五种数据类型 : String STRING是redis中最基本的数据类型,redis中的STRING类型是二进制安全的,即它可以包含任何数据,比如一个序列化的对象甚至一个jpg图片,要注意的是redis中的字符串大小上限是512M。 LIST LIST是一个简单的字符串列表,按照插入顺序进行排序,我们可以从LIST的头部(LEFT)或者尾部(RIGHT)插入一个元素,也可以从LI
转载 2023-06-07 11:22:31
709阅读
Redis 有 5 种基础数据结构,分别为:string (字符串)、list (列表)、set (集合)、hash (哈 希) 和 zset (有序集合)。String:Redis 的字符串是动态字符串,是可以修改的字符串,内部结构实现上类似于 Java 的 ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配,如图中所示,内部为当前字 符串实际分配的空间 capacity 一般要高
转载 2023-07-28 13:03:34
680阅读
zset类型数据提供了数据基于分数的排序功能,其数据结构就和hash数据结构类似。这种映射关系的数据结构允许我们去操作分数,或者获取、截取这些具有顺序的元素个体。在第一章中我们展示了一个简单的例子,使用zset来对发布的文章根据时间和投票的数据进行排序。本片文章我们将要讨论有关zset的一些其他操作命令,我们可以学习到如何添加和更新zset中的数据,当然我们也将了解如何使用zset数据结构进行in
转载 2024-06-17 08:44:32
42阅读
先给出指导意见:多个集合操作(聚合操作)----用Set;集合数据排序(排序操作) ---- 分页排序建议使用ZSet;集合数据只有0、1两种状态(二值型数据)----------- 0/1状态数据建议使用Bitmap;集合中不重复元素个数(基数统计)----如果数据量达到亿级的话建议使用HyperLogLog。1. 多个集合操作(聚合操作)Set—求多个集合数据的并、差、交集(求并、差、交集计算
转载 2023-05-29 11:00:33
359阅读
Redis有5个基本数据结构,string、list、hash、set和zset一、String1、底层结构简单动态字符串(SDS):/* * 保存字符串对象的结构 */ struct sdshdr { // buf 中已占用空间的长度 int len; // buf 中剩余可用空间的长度 int free;
redis数据类型1. string类型: 字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,也就是byte类型 最大容量是512M。 2. hash类型: hash用于存储对象,对象的结构为属性、值,值的类型为string。 key:{ 域:值, 域:值,
转载 2024-02-26 19:42:29
221阅读
Redis支持5种数据类型:String,Hash,List,Set,ZSet,这些类型是指value的类型(key--value)1.String类型(key-value)Redis中的字符串是一个字节序列,并且是二进制安全的,比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串,数值等等~字符串值的最大长度为512MBset和get方法:设置值:set key value
  redis的list类型其实就是一个每个子元素都是string类型的双向链表。所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1)。另外list会记录链表的长度。所以llen操作也是O(1).链表的最大长度是(2的32次方-1)。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列。有意思的是list的pop操作还有阻塞版
基础:万丈高楼平地起--Redis基础数据结构Redis的字符串是动态字符串SDS,采用预分配冗余空间的方式来减少内存的频繁分配。在字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会增加1M。字符串最大长度为512Mlist(列表)底层存储在元素较少的情况下,使用一块连续内存存储,数据结构使用ziplist(压缩列表),数据量比较多的时候才会改成quicklistquick
转载 2024-04-21 14:44:47
64阅读
1.受限命令2021.01.14上线时,同事遇到的问题:brpoplpush命令在上线时报错:1.1 原因之前在测试环境测的时候redis都是单节点部署,没有问题;但是在生产环境上,是redis cluster,对于多key的命令,会有命令限制。hash slot是存放key的,redis cluster共有16384个slots, CRC16(key) % 16384 来计算键 key 属于哪个
 一、redis 的数据类型,以及使用场景           Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。           String的作用:key-valu
转载 2024-02-04 21:37:02
36阅读
前面一篇文章介绍了redis对list的操作,为什么要特别介绍list呢?没错,本篇文章就是要用redis的list做消息存储的队列问题缘由:最近在开发中,遇到了一个问题,客户端和后台交互,其中有一个步骤是后台发送网络请求,调用一个外部系统,日志里面打印出每个请求耗时:客户端和内部后台一次请求完成时间是在100ms以内,和外部系统交互的时间是几千ms甚至更多,也就是说,绝大多数的处理时间几乎都浪费
转载 2024-04-18 16:18:55
184阅读
1. 有序集合(string)有序集合类型 (Sorted Set或ZSet) 相比于集合类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序值。有序集合保留了集合不能有重复成员的特性(分值可以重复),但不同的是,有序集合中的元素可以排序。2. 内部实现有序集合是由 ziplist (压缩列表) 或 skipl
1.介绍 Zset 类型(有序集合类型)相比于 Set 类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序集合的元素值,一个是排序值。2.内部实现 Zset 类型的底层数据结构是由压缩列表或跳表实现的:如果有序集合的元素个数小于 128 个,并且每个元素的值小于 64 字节时,Redis 会使用压缩列表作为 Zset 类型的底层数据
转载 2023-07-10 22:43:09
400阅读
## Redis zset的值有长度限制吗? Redis是一个开源的高性能、非关系型、键值对存储数据库。它支持多种数据结构,包括字符串、列表、哈希、集合和有序集合(zset)等。其中有序集合是一种特殊的数据结构,它除了具有集合的特点外,还可以给每个元素关联一个分数,通过分数的大小进行排序。在使用有序集合时,可能会想知道它的值是否有长度限制。 首先来看一下Redis的有序集合是如何使用的。我们可
原创 2023-11-12 04:23:53
261阅读
一、基本概念Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295,
sortedset的两种编码分别是ziplist和skiplist 【根据情况选择具体使用哪一种编码】1. ziplist我们从 添加一个有序元素 zadd key score member 命令上就可以发现 key,score,member是同时设置的,score和member是同时作为value被存在list里面,member放在第一个节点,score放在第二个节点。ziplist内的集合元素
长时间不用就忘了,工作用到了回顾总结记录一下redis命令及操作  一:redis的五种类型String:字符串,可以存在String、Integer、Float型的数据,甚至是二进制数据,一个字符串最大容量是512MList: 字符串List,底层实现上不是数组,而是链表,也就是说头部和尾部插入一个新元素,其时间复杂度是常数级别的;其弊端是:元素的定位比数组慢。Set: 字符
转载 2024-03-03 22:30:58
77阅读
  • 1
  • 2
  • 3
  • 4
  • 5