一致:Redis的7只使用场景

By admin in mobile.365-838.com on 2018年9月12日

Redis的7独应用场景

以一个“情怀”已经泛滥之年份里,任何拿在“情怀”出来说事的总人口且未太受待见。犀利者会吐槽:“我早已看穿了周”。

 

但你是否想了,如果当时世界所有的小卖部跟官员都来跟而提处理器、谈屏幕尺寸、谈钱、谈股票、谈下午茶…一切真的还值得吗?

mobile.365-838.com 1

实则,真正帅之leader,才见面及而“谈情怀”。

一:缓存——热数据

热点数据(经常会面受询问,但是不常吃修改或去除的数量),首选是运用redis缓存,毕竟强到冒泡的QPS和太强的安定团结不是有所类似工具还有,而且相比叫memcached还提供了增长的数据类型可以使,另外,内存中的多寡为供了AOF和RDB等持久化机制好选择,要冷、热的或忽冷忽热的都可选。

重组实际用得专注一下:很多丁为此spring的AOP来构建redis缓存的自动生产和消,过程也许如下:

  • Select 数据库前查询redis,有的话使redis数据,放弃select
    数据库,没有的话,select 数据库,然后用数据插入redis

  • update或者delete数据库钱,查询redis是否是拖欠数量,存在的话语先去redis中数,然后还update或者delete数据库被的多寡

方这种操作,如果连发量很粗之情状下中心无问题,但是高并发的情事要留意下面场景:

为update先删掉了redis中之拖欠数据,这时候另一个线程执行查询,发现redis中没有,瞬间推行了询问SQL,并且插入到redis中同样长条数据,回到刚才格外update语句,这个悲催的线程压根不明白刚刚十二分该死的select线程犯了一个弥天大摩!于是这个redis中之荒谬数据就永远的有了下,直到下一个update或者delete。

二:计数器

譬如统计点击数等采取。由于单线程,可以免出现问题,保证不见面出错,而且100%毫秒级性能!爽。

命令:INCRBY

本爽了了,别忘持久化,毕竟是redis只是怀了内存!


三:队列

  • 相当给信息网,ActiveMQ,RocketMQ等工具类,但是个人认为简单用一下还行,如果对数据一致性要求强之话语还是用RocketMQ等标准系统。

  • 是因为redis把数量增长到队是回去添加元素在排的第几位,所以可以做判定用户是第几个访问这种业务

  • 队不仅可将并发请求变成串行,并且还可以举行行或者仓库使用


季:位操作(大数量处理)

用来数据量上亿的景象下,例如几亿用户系统的登录,去重新登录次数统计,某用户是否在线状态等等。

合计一下腾讯10亿用户,要几只毫秒内查询到某某用户是否在线,你可知怎么开?千万别说被每个用户建立一个key,然后沿着个记(你可以算是一下消的内存会很恐惧,而且这种接近之急需很多,腾讯光这个得多花费多少钱。。)好吧。这里而用完了操作——使用setbit、getbit、bitcount命令。

原理是:

redis内构建一个十足长之累组,每个数组元素只能是0及1星星只价,然后是数组的下标index用来表示我们地方例子mobile.365-838.com中的用户id(必须是数字哈),那么好显然,这个几亿丰富之慌数组就能透过下标和元素值(0暨1)来构建一个记忆系统,上面我说之几乎单情景呢便能够落实。用到之命令是:setbit、getbit、bitcount


五:分布式锁与单线程机制

  • 证明前端的更请求(可以轻易扩展类似场面),可以经redis进行过滤:每次要将request
    Ip、参数、接口等hash作为key存储redis(幂等性请求),设置多长时间有效期,然后下次求过来的时光先在redis中搜索有没有来夫key,进而证实是休是必然时间内恢复的再提交

  • 秒杀系统,基于redis是单线程特征,防止出现数据库“爆破”

  • 大局增量ID生成,类似“秒杀”


六:最新列表

比如说新闻列表页面时的情报列表,如果总数量好死的场面下,尽量不要以select
a from A limit 10这种low货,尝试redis的
LPUSH命令构建List,一个个依次都填进去就足以啦。不过假如舅存清掉了啃办?也简要,查询不至囤key的语句,用mysql查询而初始化一个List到redis中虽好了。


七:排行榜

孰得分高孰排名为上。命令:ZADD(有续集,sorted set)

日前于研讨股票,发现量化交易是独好好的艺术,通过臆想出来规律,用程序对历史数据进行验证,来判定这个臆想出来的法则是否有效,这玩意儿真牛!有无发生哇位玩这的吃本人留个开口,交流一下嘛。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2018 mobile.365-838.com 版权所有