Redis
文章平均质量分 93
学习 Redis
sco5282
这个作者很懒,什么都没留下…
展开
-
【Redis】Redis 的学习教程(十三)Redis 各场景
由于Redis 支持比较丰富的数据结构,因此他能实现的功能并不仅限于缓存,而是可以运用到各种业务场景中,开发出既简洁、又高效的系统原创 2023-12-05 15:22:29 · 372 阅读 · 0 评论 -
【Redis】Redis 的学习教程(十二)之在 Redis使用 lua 脚本
基于 Redis 的分布式锁。原创 2023-09-28 16:14:50 · 1450 阅读 · 0 评论 -
【Redis】Redis 的学习教程(十一)之使用 Redis 实现分布式锁
在多线程环境下,为了保证数据的线程安全,锁保证同一时刻,只有一个可以访问和更新共享数据。在单机系统我们可以使用 synchronized 锁、Lock 锁保证线程安全。synchronized 锁是 Java 提供的一种内置锁,在单个 JVM 进程中提供线程之间的锁定机制,控制多线程并发。只适用于单机环境下的并发控制。想要在多个节点中提供锁定,在分布式系统并发控制共享资源,确保同一时刻只有一个访问可以调用,避免多个调用者竞争调用和数据不一致问题,保证数据的一致性,就需要。原创 2023-09-21 16:54:13 · 711 阅读 · 0 评论 -
【Redis】Redis 的学习教程(十)之使用 Redis 实现消息队列
消息队列需要满足的要求:Redis 提供了三种不同的方式来实现消息队列:因为 list 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型如果你的业务需求足够简单,想把 Redis 当作队列来使用,肯定最先想到的就是使用 list 这个数据类型常用的命令:生产者:消费者:这个模型非常简单,如下图:当队列中已经没有消息了,消费者在执行 RPOP 时,会返回 NULL我们在编写消费者逻辑时,一般是一个「死循环」,这个逻辑需要不断地从队列中拉取消息进行处理原创 2023-09-18 16:00:07 · 6003 阅读 · 2 评论 -
【Redis】Redis 的学习教程(九)之 发布 Pub、订阅 Sub
订阅消息就是接收消息,这个比较复杂。既有对 Redis 连接的管理,也有对消费消息的线程池的管理。不过 Spring 已经把这个“重活”给干了。订阅/取消订阅这些相关的用户操作接收所有来自Redis的消息把这些消息按照订阅关系分发给具体的消费者触发消费消息的回调代码在线程池中运行由于 Spring 已经全权代理,用户只需要提供要消费的 topic 以及对应的消费回调代码即可。Topic接口,表示一个订阅对象:它有两个实现类,和。原创 2023-09-11 15:01:33 · 2308 阅读 · 0 评论 -
【Redis】Redis 的学习教程(八)之 BitMap、Geo、HyperLogLog
BitMap (位图)的底层数据结构使用的是String类型的的 SDS 数据结构来保存。因为一个字节 8 个 bit 位,为了有效的将字节的 8 个 bit 都利用到位,使用数组模式存储并且每个 bit 都使用二值状态表示,要么 0,要么 1所以,BitMap 是通过一个 bit 位来表示某个元素对应的值或者状态, 它的结构如下,key 对应元素本身;offset即是偏移量,固定整型,一般存数组下表或者唯一值;value存储的是二值(要么0要么1),一般用来表示状态,如性别、是否登录、是否打卡等。原创 2023-09-11 09:27:51 · 440 阅读 · 0 评论 -
【Redis】Redis 的学习教程(六)Redis 的缓存问题
自定义分布式布隆过滤器的存储依赖于 Redis 的 Bitmap 数据结构来实现,另外还需要定义四个参数,分别为预估数据量 size,误判率 fpp,数组大小 bitNum 以及 hash 函数个数 hashNum。其中,预估数据量和误判率需要配置在 yml 文件中。bloom:filter:fpp: 0.01@Component@Autowired/*** 预估数据量*//*** 误判率*//*** 数组大小len*//*** hash函数个数size*/原创 2023-08-31 10:52:01 · 582 阅读 · 0 评论 -
【Redis】Redis 的学习教程(五)之 Redis 事务、持久化、集群
RDB 持久化方式:能够在指定的时间间隔能对你的数据进行快照存储AOF 持久化方式:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。AOF 命令以 Redis 协议追加保存每次写的操作到文件末尾。Redis还能对 AOF 文件进行后台重写,使得 AOF 文件的体积不至于过大。原创 2023-08-31 10:51:07 · 435 阅读 · 0 评论 -
【Redis】Redis 的学习教程(七)之 SpringBoot 集成 Redis
为了可读性,可以使用类,但有一个要求:key、value 都要求是 String 类型。但这就有一个问题,我们平时用得对象比较多,那又如何存储对象呢?@Override存 Redis 之前,将 Java 对象转换为 Json 字符串;读取后,将 Json 字符串转换为 Java 对象。这样做确实可行,但是,如果要存储的对象较多的话,那岂不是要重复地将 Java 对象转换为 Json 字符串?这样是不是很繁琐?继续看源码,发现被注入的被注解修饰:如果 Spring 容器中有了。原创 2023-08-31 11:38:32 · 2130 阅读 · 1 评论 -
【Redis】Redis 的学习教程(四)之 Redisson
在前几篇文章中,我们详细的介绍了 Jedis、Lettuce,我们不禁会发出一个疑问:Redisson和Jedis、Lettuce有什么区别?现在我们再回头来总结一番!Jedis:Redis 官方推出的用于通过 Java 连接 Redis 客户端的一个工具包,它提供了全面的类似于 Redis 原生命令的支持,是目前使用最广的一款 java 客户端。原创 2023-08-17 13:44:00 · 587 阅读 · 0 评论 -
【Redis】Redis 的学习教程(三)之 Lettuce
Lettuce 是 Redis 的一款高级 Java 客户端,与 Jedis 并列成为最热门的客户端之一,目前已成为 SpringBoot 2.0 版本默认的 redis 客户端相比老牌 Jedis,Lettuce 属于后起之秀,不仅功能丰富,而且提供了很多新的功能特性,比如异步操作、响应式编程等等,同时还解决了 Jedis 中线程不安全的问题。原创 2023-08-17 13:43:35 · 789 阅读 · 0 评论 -
【Redis】Redis 的学习教程(二)之 Jedis
Jedis 客户端是目前使用最广泛的一款 java 客户端,也是老牌的 Redis 的 Java 实现客户端。比较全面的提供了 Redis 的操作特性,也就是说你能用 redis 命令操作的,Jedis 包都也给你封装好了,直接使用即可使用广泛,易上手Jedis 客户端实例不是线程安全的,需要借助连接池来管理和使用 Jedis使用阻塞的I/O,且其方法调用都是同步的,程序流需要等到 sockets 处理完 I/O 才能执行,不支持异步。原创 2023-08-17 13:43:13 · 228 阅读 · 0 评论 -
【Redis】Redis 的学习教程(一)入门基础
是一款开源的,遵守 BSD 协议,使用 C 语言开发的 key-value 存储系统。简单的说,它是一款跨平台的非关系型数据库,支持优先内存存储,在分布式的架构环境下,Redis 基本上是缺一不可的缓存中间件,它能很好的解决服务与服务之间数据共享的问题,并且性能不受影响。原创 2023-08-17 13:42:49 · 325 阅读 · 0 评论 -
【Redis】Redis 的安装及图形化界面 Redis DeskTop Manager 的安装与使用
主要内容:介绍 Windows 版 Redis 安装;安装 Redis 的图形化界面 Redis DeskTop Manager## 1. Redis 介绍 **Redis** 是一个 key-value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对更多,包括:`string`(字符串)、`list`(链表)、`set`(集合)、`zset`(sorted set --有序集合)和 `hash`(哈希类型)。这些数据类型都支持 push/pop、add/remove 及原创 2022-02-11 17:06:10 · 11442 阅读 · 1 评论