![](https://img-blog.csdnimg.cn/2020040109301432.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
文章平均质量分 89
Redis使用记录
天然玩家
请大家不要再订阅了!!!如遇到专栏里可以解决您问题的文章,您可以私信我。为了保护之前订阅用户的权益,专栏内容依旧保留,但是不会再更新内容了。
展开
-
Redis队列Stream
Redis消息队列。原创 2023-10-29 14:14:27 · 435 阅读 · 0 评论 -
Redis进阶:布隆过滤器(Bloom Filter)及误判率数学推导
这布隆过滤器到底是何物?如何使用?工作原理以及应用场景、数学推导过程?本文就带你徜徉在图文并茂分析布隆过滤器的海洋中,自带游泳圈或游艇。助你知其然,知其所以然,轻松应对知识交流与考核。原创 2023-02-18 20:08:20 · 4828 阅读 · 2 评论 -
简洁易懂:源码+实战讲解Redisson并发锁及看门狗自动续期
Redisson有看门狗功能,但是,触发是有条件的,不是所有情况都可使用看门狗功能。Redisson的锁是可重入的,lock和try是有区别的。本文将通过源码逐一讲解Redisson相关功能。原创 2023-02-10 19:16:39 · 4095 阅读 · 3 评论 -
分布式锁方案分析:看图说话(图+文)
分布式锁:任意时刻,有且仅有一个线程可操作公共资源。分布式锁特征:(1)互斥性:任意时刻,只有一个客户端可以持有锁;(2)锁超时释放:保证资源循环利用,避免死锁(长生锁);(3)可重入性:一个线程可重复申请锁;(4)安全性:锁只能被持有锁的客户端释放(删除);(5)高性能和高可用:加锁和释放锁低时延,高可用,避免单机锁失效。分布式锁方案:单机:Redisson和多机:RedLock等。原创 2023-01-12 12:08:22 · 440 阅读 · 0 评论 -
Redis进阶:源码详解哨兵模式工作原理(图+文+源码,第二部分)
Redis哨兵模式:(1)通过异步定时执行相关任务,如哨兵与存储节点同步消息(PING、INFO)、哨兵间同步消息(Hello);(2)节点间同步消息通过通道:`__sentinel__:hello`,因此有Publish和Subscribe,其中,哨兵向存储节点发送PING和INFO以及哨兵间发送Hello为PUB过程,在哨兵连接存储节点过程,进行订阅;(3)PING的周期为:1秒,INFO命令的周期为:10秒,发送Hello的周期为:2秒;(4)判定主观下线时,并不是直接进入下线判定逻辑,而是先原创 2022-10-15 15:50:27 · 1724 阅读 · 0 评论 -
Redis进阶:哨兵工作原理(图+文,第一部分)
(1)Redis保证集群高可用的方案之一:哨兵;(2)Redis哨兵方案中,有两部分通信:哨兵间通信以及哨兵与主节点的通信;(3)哨兵间通信用于传递集群中Redis实例的信息以及实现故障转移;(4)主节点故障时有两种状态:SDOWN和ODOWN,当主节点被quorum个哨兵判断为ODOWN时,才会重新选举主节点,进行故障转移;(5)哨兵与主节点通信,首先确认SDOWN,然后,哨兵间通信,其他哨兵同时确认主节点为SDOWN,数量达到配置的quorum时,判定主节点ODWON。原创 2022-10-02 20:38:00 · 1373 阅读 · 0 评论 -
Redis基础类型ZSet增删改查(带Java库源码)
zset是set的另一种形式,添加了score属性,数据自动按照score排序,因此,可以通过score完成相关业务需求。原创 2022-09-19 11:39:45 · 5366 阅读 · 0 评论 -
实战详解Redis事务
(1)Redis有事务概念,Redis支持将命令拆分为单步事务执行;(2)Redis不支持原子性,无法回滚;(3)Redis支持事务隔离性,保证不会读到未提交的脏数据;(4)并发时,使用WATCH监控键,保证数据安全更新。原创 2022-09-14 12:17:42 · 392 阅读 · 0 评论 -
详解Redis基础数据类型Set增删查(带Java源码)
Redis集合操作只有增删查,并没有更新操作,因此,向修改集合的数据,需要先删除数据,再新增,同时,集合有自身的特定功能,有交集、并集和补集(差集)操作。原创 2022-09-11 16:34:01 · 3016 阅读 · 0 评论 -
实战讲解Redis基础数据类型List增删改查(带Java源码)
新增:lpush,rpush,linsert;删除:lpop,rpop,brpoplpush,ltrim;修改:lset;查询:llen,lrange,lindex,lpos。原创 2022-09-03 22:40:07 · 5688 阅读 · 0 评论 -
Redis进阶:图文讲解Redis底层数据结构之embstr,raw,ziplist,quicklist和hashtable (带源码讲解)
(1)基础数据类型是显式类型,不同的值属性会映射不同的Redis对象;(2)embstr和raw存储字符串,embstr分配一次内存,raw分配两次内存,性能较raw好;(3)ziplist压缩列表节省内存空间,但是会有级联更新的问题;(4)quicklist组合双向链表和压缩列表,高效插入、删除,连续的存储空间,访问效率高;(5)hashtable渐进式rehash,效率较一次rehash高,并且hashFunction(key)较string节约内存空间。......原创 2022-08-18 11:48:50 · 2181 阅读 · 0 评论 -
实战详解Ubuntu20部署Redis6.0集群(单机版)
Redis集群:通过主从方式,搭建集群,保证Redis系统高可用。主节点之间双向通信。相互传输节点槽信息、主从状态、节点故障等信息。原创 2022-02-16 15:38:03 · 774 阅读 · 0 评论 -
系统性详解Redis操作Hash类型数据(带源码分析及测试结果)
核心:(1)增加数据:单条新增:直接新增:hset,key不存在则新增,key存在则覆盖旧值;单条新增:条件新增:hsetnx,key不存在则新增,key存在不操作;批量新增:hmset;(2)删除数据:可以单条也可批量删除;(3)修改:修改数据使用hset或者hmset,直接覆盖旧值。如果需要增加或减少数据,可以使用纯数字的数据,指定步长加或减,支持整数步长和浮点步长,通过步长的正负进行加减;(4)查询数据:单条查询(hget),返回单条数据;多条查询(hmget),所有数据hgetAll.原创 2022-07-06 11:13:13 · 2517 阅读 · 0 评论 -
CentOS7部署哨兵Redis(带架构图,清晰易懂)
核心:(1)环境准备:gcc升级,Redis编译;(2)配置节点:主节点和从节点;(3)配置哨兵:监听主节点,配置主节点名称;(4)开放端口:CentOS7默认关闭端口,因此,需要开放哨兵和节点的所有端口。......原创 2022-07-02 20:51:36 · 921 阅读 · 0 评论 -
如何正确使用Vertx操作Redis(3.9.4带源码分析和测试结果)
(1)配置Redis连接地址,通过RedisOptions,该类实例化时,有默认的参数;(2)Vert.x3.9.4提供的Redis客户端无法连接需要密码认证的Redis集群,但是,可以连接单体需要密码认证的Redis;(3)创建连接使用Redis.createClient,该方法根据type选择建立对应的Redis客户端:集群(cluster)、哨兵(sentinel)和单体(standalone);(4)操作Redis使用RedisAPI完成;(5)Vert.x操作Redis是通过异步线程完成。原创 2022-07-01 16:06:18 · 1713 阅读 · 0 评论 -
超详细讲解Redis基础类型String增删改查及加减数据(带Java库源码)
(1)增加数据: - 单条新增:直接新增:set,key不存在则新增,key存在则覆盖旧值; - 单条新增:条件新增:setnx,key不存在则新增,key存在不操作; - 批量新增:mset,msetnx; - 添加过期时间:setex,时间单位:秒,只能单条新增;(2)删除数据:可以单条也可批量删除;(3)修改:修改数据使用set或者mset,直接覆盖旧值。如果需要增加或减少数据,可以使用纯数字的数据,加一或减一,指定步长加或减;(4)查询数据:单条查询(get),返回单条数据;多条查询原创 2022-06-26 18:24:01 · 2973 阅读 · 0 评论 -
一文搞不懂springboot中redis参数配置
核心:(1)支持的客户端连接方式:直连、集群、哨兵;(2)Redis客户端连接池类型:Jedis和Lettuce;(3)Jedis简单易用的Redis客户端;Lettuce线程安全、异步的高性能Redis客户端;(3)Jedis和Lettuce通用连接池配置:最大空闲连接、最小空闲连接等,通过timeBetweenEvictionRuns控制回收空闲连接的频率;(4)防止获取连接阻塞,必须设置maxWait最大等待时间。......原创 2022-06-07 17:32:55 · 4570 阅读 · 0 评论 -
Redis集群配置密码
创建Redis集群之后再配置密码。所有Redis节点配置文件中添加。原创 2022-02-17 17:13:54 · 2799 阅读 · 0 评论 -
Redis缓存击穿、缓存穿透和缓存雪崩
缓存失效:击穿、穿透、雪崩。共同点:Redis缓存失效,没有命中数据(数据为空或者Redis异常)。不同点:最终返回响应不同。针对Redis缓存失效,常用的方案:预加载、限流、熔断等。原创 2022-02-14 16:27:48 · 617 阅读 · 0 评论 -
Redis基础系列:多线程阻塞getResource
多线程使用Redis,避免阻塞:- 使用连接池;- 配置连接池最大等待时间;- 及时释放Redis实例资源:try-with-resource;- 捕获异常,并返回可读的提示信息。原创 2022-01-13 19:58:52 · 1351 阅读 · 0 评论 -
Redis缓存Token实现:简单版
1 环境 Ubuntu18.04 Java1.8.0_191 Spring Boot2.0.4.RELEASE2 依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>3 接口package com.compa原创 2020-05-11 14:25:46 · 1727 阅读 · 0 评论 -
Redis数据存储
1 数据存储2 数据备份数据持久化到磁盘:rdb和aof两种方式,默认rdb方式。2.1 快照持久化rdb文件位置:/var/lib/redis,文件为dump.rdb,使用vim打开,内容如下:REDIS0008ú redis-ver^E4.0.9úredis-bitsÀ@ú^EctimeÂ<98>±ª^ú^Hused-memÂ^@^Q^L^@ú^Laof-pr...原创 2020-05-07 17:32:19 · 1828 阅读 · 0 评论 -
Java实现Redis过期数据清除
1 过期策略1.0 定期删除主动删除定期删除设置一个时间间隔,每个时间段都会检测是否有键过期,定期随机抽取键检查和删除.1.2 惰性删除被动删除惰性删除不会在键过期是立即删除,而是当外部获取这个键时删除.1.3 定时删除主动删除创建键时设置过期时间,创建一个定时器,当键达到过期时间阈值时,立即删除键,删除该时刻过期的所有键,不会考虑此时机器所处状态.2 内存淘汰...原创 2020-04-01 17:22:16 · 3320 阅读 · 2 评论 -
Redis安装及简单使用
(1)redis默认有16个数据库,从0~15编号;(2)5种数据结构,数据可持久化;(3)数据可设置过期时间,并设置定期清理;(4)数据库可配置用户认证,默认端口6379;(5)Mac中使用Redis需要在redis-server后添加配置文件,使配置文件生效,如redis-server redis.conf。......原创 2019-12-05 18:03:18 · 1123 阅读 · 0 评论 -
SpringBoot模块系列:Redis增删改查
1 pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>2 applicat...原创 2019-12-12 20:52:43 · 856 阅读 · 2 评论