口试官:Redis五种根基数据范例的应用场景是啥?
副问题[/!--empirenews.page--]
string 缓存 简朴key-value存储 漫衍式锁 setnx key value,当key不存在时,将 key 的值设为 value ,返回1 若给定的 key 已经存在,则setnx不做任何举措,返回0。 当setnx返回1时,暗示获取锁,做完操纵往后del key,暗示开释锁,假如setnx返回0暗示获取锁失败,整体思绪或许就是这样 计数器 如知乎每个题目的被赏识器次数 ![]()
漫衍式全局独一id 漫衍式全局独一id的实现方法有许多,这里只先容用redis实现 ![]() 每次获取userId的时辰,对userId加1再获取,可以改造为如下情势 ![]() 直接获取一段userId的最大值,缓存到当地逐步累加,快到了userId的最大值时,再去获取一段,一个用户处事宕机了,也顶多一小段userId没有效到
hashredis的散列可以让用户将多个键值对存储到一个Redis的键内里,散列很是合用于将一些相干的数据存储在一路。相同map的一种布局,将布局化的数据,好比一个工具(条件是这个工具没嵌套其他的工具)给缓存到redis中,往后每次读写内存时,就可以操纵hash里的某个字段 list动静行列 ![]() 在list内里一边进,一边出即可
新浪/Twitter用户动静列表 ![]() 插手说小编li存眷了2个微博a和b,a发了一条微博(编号为100)就执行如下呼吁
b发了一条微博(编号为200)就执行如下呼吁:
若是想拿最近的10条动静就可以执行如下呼吁(最新的动静必然在list的最左边):
set无序荟萃,自动去重,将数据放到set中就可去重,可以基于JVM的HashSet去重,假如体系陈设在多台呆板上,就可以用redis举办全局去重 可以基于set做交集,并集,差集的操纵。如把2小我私人的粉丝列表弄一个交集,就能看到两小我私人的配合挚友是谁 实现点赞,签到,like等成果 ![]()
实现存眷模子,也许熟悉的人 ![]() seven存眷的人 sevenSub -> {qing, mic, james} 青山存眷的人 qingSub->{seven,jack,mic,james} Mic存眷的人 MicSub->{seven,james,qing,jack,tom}
电商商品筛选 ![]() 每个商品入库的时辰即会成立他的静态标签列表如,品牌,尺寸,处理赏罚器,内存
zset排序的set,可以去重还可以排序,写进去的时辰给一个分数,自动按照按照分数排序,分数可以自界说排序法则 redis的zset生成是用来做排行榜的、挚友列表, 去重, 汗青记录等营业需求 ![]()
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |