redis 有序集合
- 面试官:如何统计在线人数(怎么在线统计信息)
-
昨天,一位朋友在面试中被问到:如何统计在线人数?估计有的朋友做过这个功能,但有没有想过方案是否可以在优化。没有了解过的朋友,那就趁机学习一下,防止下次面试自己被遇到。免费使用刷题网站!在线人数统计这个功能相信大家一眼就明白是啥,这个功能不难做,实现的方式也很多,这里说一下我常使用的方式:使用Redi...
- 稳了!用Redis实现“附近的人”功能
-
针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。图片来自Pexels而Redis另辟蹊径,结合其有序队列ZSET以及GEOHASH编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原...
- 那些经典算法:跳表(跳表的特征)
-
简介跳表(SkipList)是一种高效适合动态查找插入修改的数据结构,最早我了解跳表这个数据结构是学习Lucene,里面的倒排索引的实现利用到了跳表这种数据结构,在redis的有序集合的实现中,也是实现了跳表这种数据结构,可以参考源码t_zset.c。跳表构造和原理首先看看跳表的数据结构,如下:从...
- SpringBoot2 + Redisson 高效打造分布式延时任务,代码以及案例讲解
-
SpringBoot2+Redisson高效打造分布式延时任务,代码以及案例讲解,源码下载首先,我得回忆一下Redisson的功能,它作为Redis的客户端,提供了很多分布式功能,比如分布式锁、集合、队列等。延时任务的话,通常可以用延迟队列来实现,而Redisson正好有相关的实现。首先,用户...
- 【16】Redis 支持哪些数据结构?
-
Redis支持哪些数据结构?「字符串」(string):字符串是Redis最基本的数据结构,它可以是普通的字符串或者二进制数据,最大长度为512MB。「哈希」(hash):Redis哈希是一个键值对集合,其中键和值都是字符串类型。哈希适用于存储对象。「列表」(list):Redis列表是一个链...
- Redis集群监控方法
-
1.技术领域提供一种Redis集群中各Redis节点的监控处理方法,能够采集Redis节点的资源信息、性能指标数据,集群内多个Redis节点服务运行状态监控。实现告警监控信息、资源和性能指标的采集与分析的监控方法。2.背景技术2.1Redis简介Redis是一种开源的内存中key-...
- Redis跳表介绍
-
跳表的诞生可以简单用下面的例子来看:假设一个有序链表,查询某个节点的时间复杂度是O(n),那接下来在链表上层再建立一条链表,每两个结点提取一个结点到上一级,形成L1级缓存链表,如下:这样当我们要找寻8时,先通过L1索引链表找到7,然后在向下一级链表遍历就找了8,这比直接遍历链表的效率提高了不少,同理...
- 有序链表升级版:跳表的基本原理
-
背景在元素有序的情况下,数组可以基于二分查找快速定位元素,而普通链表就比较尴尬了,定位元素的时间复杂度还是O(N)。那有没有办法给有序链表加速呢?跳表便是有序链表的升级版,拥有较高的读写性能,且相比于红黑树和平衡树,实现复杂度也更低。而Redis的有序集合底层的数据结构之一就是跳表,本文主要讲...
- 什么是延迟队列?延迟队列能干什么?
-
延迟队列是在日常开发中一种用来进行特殊处理的队列形式,一般情况下,它允许消息或者是任务在指定的一段时间之后才会被处理。也就是说,当一个执行的任务被放入到了延迟队列中的时候,他不会被立即消费,而是要等到一定的时间之后才会被消费者合理的提取并进行处理。下面我们就来详细介绍一下延迟队列。延迟队列的主要功能...
- JAVA分布式Redis缓存
-
1、什么是RedisRedis采用的是基于内存的采用的是单进程单线程模型的KV数据库,由C语言编写。官方提供的数据是可以达到100000+的qps2、Redis基本数据类型Redis目前支持5种数据类型,分别是:String(字符串)List(列表)Hash(字典)Set(集合)SortedSet...