redis
文章平均质量分 69
rgbhi
空无一物,无限可能
展开
-
Redis分布式锁的简单实现
核心是SETNX基本命令,如果键存在的话,就返回0,不存在,则返回1。尝试获取锁public Jedis tryLock(String key, int timeOut) { //从jedis线程池里拿到一个jedis链接管理 Jedis jedis = jedisPool.getResource(); while (true) { if (jedis.setnx(key, key) == 1) { jedis.原创 2021-06-01 13:20:23 · 63 阅读 · 0 评论 -
redis主从和集群
我们首先得明确一下,主从跟集群是不同的两个概念。举个例子,什么是主从。比如说你有一个苹果A,主从就是对这个苹果A施展了影分身之术,比如说一主二从,指的是我们给这个苹果A在更高的维度造了2个分身(不同服务器),也被称为slaver(奴隶),对应master(主人)。计算机只有0,1的数据,充其量是2维,我们在三维施展的这个trick,对计算机来说就跟魔法一样(并不)。如果这个苹果A(master)不小心挂掉了,我们可以从三维直接将苹果A的影分身替代原来的苹果A,而之前跟苹果A接触的所有计算机世界的居民,原创 2021-05-07 16:20:19 · 934 阅读 · 0 评论 -
Redis高级数据结构(geohash)——Redis深度历险笔记6
geohash是关于划分经纬度的,它跟R树是挺不一样的。R树是分散的,多维的,由底下的点聚集成树索引,geohash是把经纬度这两维度压缩到一个维度上。那是如何将2维压缩到1维的呢?例如,一个点(x,y)在一个象限内,x轴上正为1,负为0。y轴也是,正为1,负为0。这样,就将一个平面划分成4个方位,可以用11,10,00,01这样的二进制一维数来表示点所处的二维方位。那这个算法是如何进行的呢。众所周知,经度是-180到180,维度是-90到90,我们设定0为负,1为正。假如一个点的值为(-100原创 2021-03-17 20:56:55 · 276 阅读 · 0 评论 -
Redis高级数据结构(hyperloglog,布隆过滤器,漏斗限流)——Redis深度历险笔记5
说实在的HyperLogLog这个数据结构我感觉挺神奇的。什么是HyperLogLog,有啥用简而言之,是一个粗略的,专为大数据使用的,求set内有多少个元素的另一种表现形式。大家都知道set的作用是去重。。。术语叫统计基数,举例,数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}。一般情况下,怎么去重,当然是把所有的出现过的数据,都存下来,当新的数据来的时候,跟老的数据都比较一遍(计算hash值,去对应链表查询),才知道是否存在。不存在的话原创 2021-03-16 22:24:11 · 210 阅读 · 0 评论 -
深入理解Redis基本数据结构(set集合,zset有序集合,跳表)——Redis深度历险笔记4
set就是一个特殊的hash不知道hash是什么的请看上一章,hash类似java里的hashmap的数据结构。set就类似java里的hashset。就是一种特殊的字典表。set在进行add操作的时候进行去重工作,只存key,value都是null。zset面试官的最爱zset在set的去重基础上,增加了一项排序功能。还记得set的value都是null么,zset在value存score(分数),用这个分数来进行排序输出。我们知道zset既有hash的功能,也有排序的功能。hash简单,还原创 2021-03-15 14:55:17 · 267 阅读 · 0 评论 -
深入理解Redis基本数据结构(hash字典)——Redis深度历险笔记3
来谈谈第三种基本数据结构Hash(字典)原创 2021-03-13 20:49:52 · 160 阅读 · 0 评论 -
深入理解Redis基本数据结构(list)——Redis深度历险笔记2
铁汁们,咱们又见面了原创 2021-03-11 22:21:26 · 154 阅读 · 0 评论 -
深入理解Redis基本数据结构(string字符串)——Redis深度历险笔记1
整体感受首先来谈谈我对这本书的观感,个人觉得老钱讲的挺好的,通俗易懂,里面图片挺多的,我蛮喜欢,对学习redis的内容、原理挺有帮助的为什么要写笔记?因为通读一遍之后,过了一两个月后,脑袋里就完全没有印象了,只有模糊的概念,这样挺不好。需要依靠笔记来梳理、强化记忆,以备到时候使用的时候,能尽快搜索到(翻书还是太不方便了)——写给未来的我,和现在在屏幕前的你。好吧,那我们就开始吧redis,咱做后端的,应该都不陌生,用处最广泛的是用来做缓存,为啥?因为快。为什么快,因为直接存在内存里,能不快么。(当原创 2021-03-09 23:28:31 · 171 阅读 · 2 评论