资讯动态

Redis 数据结构总结

发布时间:2026/10/14 18:58:26 来源:尧图企业网站定制
一张图/*** 1.String*sds(简单动态字符串)** 2.List*2.1. 双端链表quicklistRedis 3.2 及以后版本* 2.2 压缩列表ziplistRedis 3.2 之前版本** 3.Set* 3.1. 整数集合intset 小于512 个元素* 3.2.哈希表hashtable里面两个哈希表的实现 dict(字典)** 4.Hash* 4.1 压缩列表ziplist小于512 个元素* 4.2哈希表hashtable里面两个哈希表的实现 dict(字典)** 5.SortedSet 小于128 个元素* 5.1.压缩列表ziplist适合存储少量数据内存使用效率高。* 5.2.跳表skiplist适合存储大量数据支持高效的排序和范围查询。**/Redis 的高级数据结构和模块扩展了其功能适用于多种复杂场景数据结构 应用场景HyperLogLog 基数统计如 UV 统计Bitmaps 用户签到、状态存储GEO 地理位置(geography)查询Streams 消息队列、实时数据处理RedisJSON JSON 数据存储与操作RedisGraph 图(graph)数据存储与查询RedisBloom 去重、热点统计TimeSeries 时间序列数据存储与分析Redis 数据结构总结截至 Redis 最新版本Redis 7.x知识截止日期为 2023 年Redis 提供了以下数据结构和模块涵盖了基础数据结构和高级数据结构。以下是 Redis 的完整数据结构列表基础数据结构1. String字符串最基础的数据结构存储简单的键值对。支持操作SET、GET、INCR、DECR、APPEND 等。应用场景缓存、计数器、简单的键值存储。2. List列表有序列表支持双向链表操作。支持操作LPUSH、RPUSH、LPOP、RPOP、LRANGE 等。应用场景消息队列、任务队列。3. Set集合无序集合支持去重。支持操作SADD、SREM、SMEMBERS、SUNION 等。应用场景标签管理、去重。4. Hash哈希表存储键值对的集合类似于 Map。支持操作HSET、HGET、HDEL、HGETALL 等。应用场景用户信息存储、配置管理。5. Sorted Set有序集合ZSet带分数的有序集合支持排序。支持操作ZADD、ZRANGE、ZREM、ZCOUNT 等。应用场景排行榜、优先级队列。高级数据结构1. HyperLogLog用于基数估算统计集合中不重复元素的数量。支持操作PFADD、PFCOUNT、PFMERGE。应用场景UV统计、去重统计。2. Bitmaps位数组用于存储和操作二进制数据。支持操作SETBIT、GETBIT、BITCOUNT、BITOP。应用场景用户签到、状态存储。3. GEO地理位置存储地理位置信息经纬度并支持地理位置相关操作。支持操作GEOADD、GEODIST、GEORADIUS、GEORADIUSBYMEMBER。应用场景附近的人或店铺查询、地理位置距离计算。4. Streams消息队列Redis 5.0 引入的消息队列数据结构支持生产者-消费者模型。支持操作XADD、XREAD、XGROUP、XACK。应用场景日志收集、实时数据处理、轻量级消息队列。Redis 模块扩展的数据结构Redis 的模块扩展提供了更多高级数据结构以下是常见模块及其数据结构1. RedisJSON用于存储和操作 JSON 数据。支持操作JSON.SET、JSON.GET、JSON.DEL、JSON.MGET。应用场景存储结构化数据、替代关系型数据库。2. RedisGraph图数据结构支持存储和查询图数据。支持操作GRAPH.QUERY、GRAPH.PROFILE、GRAPH.DELETE。应用场景社交网络分析、推荐系统、路径优化。3. RedisBloom提供概率性数据结构如布隆过滤器、计数最小堆、Cuckoo Filter 等。支持操作BF.ADD、BF.EXISTS、CF.ADD、TOPK.ADD。应用场景去重、热点数据统计、数据流分析。4. TimeSeries时间序列用于存储和查询时间序列数据。支持操作TS.CREATE、TS.ADD、TS.RANGE、TS.MRANGE。应用场景物联网数据存储、实时监控、金融数据分析。5. RedisAI用于运行机器学习模型如 TensorFlow、PyTorch。支持操作AI.MODELSET、AI.MODELRUN、AI.TENSORSET。应用场景机器学习推理、实时 AI 应用。6. RedisSearch提供全文搜索功能。支持操作FT.CREATE、FT.SEARCH、FT.AGGREGATE。应用场景搜索引擎、复杂查询。Redis 最新版本的增强功能1. 多线程 I/ORedis 6.0 引入了多线程 I/O提升了性能尤其是在处理大量并发连接时。2. ACL访问控制列表Redis 6.0 引入了用户级别的权限控制支持细粒度的访问控制。3. 客户端缓存Redis 6.0 引入了客户端缓存功能允许客户端订阅键的变化。4. 集群模式增强Redis 7.x 增强了集群模式的性能和稳定性支持更多的命令和功能。数据结构与应用场景总结数据结构 应用场景String 缓存、计数器、简单键值存储List 消息队列、任务队列Set 标签管理、去重Hash 用户信息存储、配置管理Sorted Set 排行榜、优先级队列HyperLogLog UV统计、去重统计Bitmaps 用户签到、状态存储GEO 地理位置查询、距离计算Streams 消息队列、实时数据处理RedisJSON JSON 数据存储与操作RedisGraph 图数据存储与查询RedisBloom 去重、热点统计TimeSeries 时间序列数据存储与分析RedisAI 机器学习推理、实时 AI 应用RedisSearch 搜索引擎、复杂查询Redisson 数据结构总结Redisson 数据结构总结1. 基础数据结构1. RBucket分布式对象用于存储单个键值对。类似于 Redis 的 String 类型。示例RBucketString bucket redissonClient.getBucket(myBucket);2. RMap分布式 Map类似于 Java 的 Map支持键值对存储。支持高级功能如 TTL过期时间、监听器等。示例RMapString, String map redissonClient.getMap(myMap);3. RSet分布式 Set类似于 Java 的 Set支持无序集合存储。示例RSetString set redissonClient.getSet(mySet);4. RList分布式 List类似于 Java 的 List支持有序集合存储。示例RListString list redissonClient.getList(myList);5. RDeque分布式双端队列类似于 Java 的 Deque支持双端队列操作。示例RDequeString deque redissonClient.getDeque(myDeque);6. RQueue分布式队列类似于 Java 的 Queue支持先进先出FIFO操作。示例RQueueString queue redissonClient.getQueue(myQueue);7. RSortedSet分布式有序集合类似于 Java 的 SortedSet支持排序。示例RSortedSetString sortedSet redissonClient.getSortedSet(mySortedSet);2. 高级数据结构1. RLock分布式锁支持分布式锁功能适用于多线程或分布式环境。示例RLock lock redissonClient.getLock(myLock);2. RReadWriteLock分布式读写锁支持分布式读写锁功能。示例RReadWriteLock readWriteLock redissonClient.getReadWriteLock(myReadWriteLock);3. RSemaphore分布式信号量支持分布式信号量功能。示例RSemaphore semaphore redissonClient.getSemaphore(mySemaphore);4. RCountDownLatch分布式倒计时器类似于 Java 的 CountDownLatch支持分布式环境。示例RCountDownLatch latch redissonClient.getCountDownLatch(myLatch);5. RAtomicLong分布式原子计数器类似于 Java 的 AtomicLong支持分布式环境。示例RAtomicLong atomicLong redissonClient.getAtomicLong(myAtomicLong);6. RBitSet分布式位集合类似于 Java 的 BitSet支持位操作。示例RBitSet bitSet redissonClient.getBitSet(myBitSet);7. RBloomFilter分布式布隆过滤器用于高效地判断元素是否存在适合大规模数据场景。示例RBloomFilterString bloomFilter redissonClient.getBloomFilter(myBloomFilter);3. 分布式集合扩展1. RHyperLogLog分布式 HyperLogLog用于基数估算统计不重复元素的数量。示例RHyperLogLogString hyperLogLog redissonClient.getHyperLogLog(myHyperLogLog);2. RGeo分布式地理位置用于存储和操作地理位置信息。示例RGeoString geo redissonClient.getGeo(myGeo);4. 分布式消息队列1. RTopic分布式发布订阅支持发布订阅模式。示例RTopic topic redissonClient.getTopic(myTopic);2. RBlockingQueue分布式阻塞队列支持阻塞队列功能。示例RBlockingQueueString blockingQueue redissonClient.getBlockingQueue(myBlockingQueue);3. RDelayedQueue分布式延迟队列支持延迟队列功能。示例RDelayedQueueString delayedQueue redissonClient.getDelayedQueue(queue);5. 分布式缓存1. RLocalCachedMap本地缓存 Map支持本地缓存和 Redis 同步。示例RLocalCachedMapString, String localCachedMap redissonClient.getLocalCachedMap(myLocalCachedMap);2. RRateLimiter分布式限流器用于实现分布式限流功能。示例RRateLimiter rateLimiter redissonClient.getRateLimiter(myRateLimiter);6. 分布式任务调度1. RScheduledExecutorService分布式任务调度支持分布式任务调度和执行。示例RScheduledExecutorService executor redissonClient.getExecutorService(myExecutor);Redisson 数据结构与应用场景总结数据结构 功能说明 应用场景RBucket 单键值存储 缓存、简单键值存储RMap 分布式 Map 配置管理、键值存储RSet 分布式 Set 标签管理、去重RList 分布式 List 有序集合、任务队列RLock 分布式锁 分布式环境下的锁机制RSemaphore 分布式信号量 限流、资源控制RCountDownLatch 分布式倒计时器 分布式任务协调RBloomFilter 布隆过滤器 去重、热点数据统计RHyperLogLog 基数估算 UV统计、去重统计RGeo 地理位置存储与查询 附近的人、距离计算RTopic 发布订阅 消息通知、事件驱动RBlockingQueue 阻塞队列 消息队列、任务队列RDelayedQueue 延迟队列 定时任务、延迟消息处理RRateLimiter 限流器 分布式限流、接口保护RScheduledExecutorService 分布式任务调度 定时任务、分布式任务执行Redisson 的优势1. 分布式支持提供了丰富的分布式数据结构适合分布式系统开发。2. 线程安全所有数据结构和工具都是线程安全的。3. 高级功能支持分布式锁、信号量、限流器、延迟队列等高级功能。4. 易用性API 设计简单易于集成到 Spring Boot 项目中。如果您需要具体的代码示例或进一步的帮助请随时提问

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑