Redis
Redis学习笔记分享
天乔巴夏丶
这个作者很懒,什么都没留下…
展开
-
《Redis深度历险学习笔记》:Redis的HyperLogLog结构
应用场景HyperLogLog 提供不精确的去重计数方案,虽然不精确但是也不是非常不精确,标准误差是 0.81%,常见的应用场景是统计UV。UV:Unique Visitor,独立访客,是指通过互联网访问、浏览这个网页的自然人,访问网站的一台电脑客户端作为一个访客。00:00-24:00内相同的客户端只被计算一次【以Cookie为依据】。一天内同个访客多次访问仅算一个UV。使用方法常用指令,可用版本>=2.8.9:pfadd:计数。pfcount:获取计数。pfmerge:将多个原创 2020-12-10 10:15:28 · 171 阅读 · 0 评论 -
《Redis深度历险学习笔记》:Redis的延时队列使用
Redis 的消息队列不是专业的消息队列,它没有非常多的高级特性,没有 ack 保证,如果对消息的可靠性有着极致的追求,那么它就不适合使用,对于那些只有一组消费者的消息队列,使用 Redis 就可以非常轻松的搞定。异步消息队列Redis的list常用来作为异步消息队列使用,使用``rpush/lpush操作入队列,使用lpop/rpop`来出队列。> rpush stack 1 2 3(integer) 3> rpop stack"3"> rpop stack"2">原创 2020-12-10 10:13:21 · 248 阅读 · 0 评论 -
《Redis深度历险学习笔记》:Redis的分布式锁使用
分布式应用中常见的并发问题以修改用户的状态为例,一个操作将会拆分成三个步骤:读出用户的状态。在内存里进行修改操作。改完之后存回去。读取和保存两个操作并不是原子的,多线程情况下,会出现并发问题。可以使用分布式锁来限制程序的并发执行。分布式锁的使用使用setnx命令,set if not exist,只允许被一个客户端占坑,用完之后,调用del指令释放。> setnx lock true(integer) 1# do something> del lock(inte原创 2020-12-10 10:10:54 · 150 阅读 · 0 评论 -
《Redis深度历险学习笔记》:Redis中的Bitmap位图
使用场景在我们平时开发过程中,会有一些 bool 型数据需要存取,比如用户一年的签到记录,签了是 1,没签是 0,要记录 365 天。如果使用普通的 key/value,每个用户要记录 365个,当用户上亿的时候,需要的存储空间是惊人的。为了解决这个问题,Redis 提供了位图数据结构,这样每天的签到记录只占据一个位,365 天就是 365 个位,46 个字节 (一个字节有8位) 就可以完全容纳下,这就大大节约了存储空间。位图不是特殊的数据结构,它的内容其实就是普通的字符串,也就是 byte 数组。我们原创 2020-12-10 10:09:12 · 225 阅读 · 0 评论 -
《Redis深度历险学习笔记》:Redis的基本数据结构
《Redis深度探险:核心原理和应用实践》写在前面Redis概述官网地址:https://redis.io/Redis命令在线演示地址:https://try.redis.io/命令参考:http://doc.redisfans.com/Redis 是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的 Web 应用程序。Redis 也被作者戏称为 数据结构服务器 ,这意味着使用者可以通过一些命令,基于带有 TCP 套接字的简单 服务器-客户端 协议来访问一组 可变数据结构.原创 2020-12-10 10:01:36 · 242 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
转载于:每天进步一点点:https://blog.csdn.net/kongtiao5/article/details/82771694 一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,转载 2020-07-25 17:06:32 · 111 阅读 · 0 评论 -
Jedis+Jedis工具类代码+Jedis配置
String类型操作 @Test public void testString(){ //获取连接 Jedis jedis = new Jedis("localhost",6379); //存储字符串 jedis.set("username","summerday"); //获取 Str...原创 2020-03-28 20:37:44 · 947 阅读 · 0 评论