
A1--redis
文章平均质量分 72
redis
乐之者v
快乐编程,一生编程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用Redis缓存需要注意的地方
缓存击穿(Hotspot Invalid),是指热点key在某个时间点过期的时候,而恰好在这个时间点对这个Key有大量的并发请求过来,从而大量的请求打到数据库。缓存雪崩 (Cache Avalanche) :是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机。如果更新数据库的数据之后,没有处理缓存,那么在查询时,查到的还是缓存中的旧数据,这就会导致缓存和数据库的不一致。如果不设置过期时间,缓存的内存就会越占越多,最后内存用完了,就没法缓存了。原创 2024-06-08 12:35:30 · 661 阅读 · 0 评论 -
Redis RedisTemplate 的 execute()方法
如果频繁地使用Redis,比如在 for循环中调用 redis,有时可能会报错: Could not get a resource from the pool。这是因为 Redis的连接数是有限的,打开了Redis的连接,用完记得要关闭,如果连接数不够了就会报错。使用SessionCallback , 还可以配合multi() 和 watch() 进行事务操作。Redis 批量操作,可以使用 RedisTemplate 的 execute()方法。原创 2023-11-12 21:42:47 · 1101 阅读 · 0 评论 -
Redis使用Pipeline(管道)批量处理
Pipeline (管道) 可以一次性发送多条命令并在执行完后一次性将结果返回,pipeline 通过减少客户端与 redis 的通信次数来实现降低往返延时时间,而且 Pipeline 实现的原理是队列,而队列的原理是时先进先出,这样就保证数据的顺序性。(2)在executePipelined()中, 使用 get()方法 得到的value会是null。比如,Jedis批量查询多个Hash,可以使用 Pipeline (管道)。这时,可以使用 Pipeline (管道)。原创 2023-11-12 21:41:29 · 1048 阅读 · 0 评论 -
@Cacheable 注解的 CacheManager
【代码】@Cacheable 注解的 @CacheManager 示例。原创 2023-11-12 00:40:53 · 729 阅读 · 0 评论 -
@Cacheable 、 @CachePut 、@CacheEvict 注解
SpringCache注解,会自动拼接好缓存的key,并在中间加上符号:: ,如果 @Cacheable 生效,那查出来的就是缓存的数据,而不是数据库的数据。对key进行缓存,缓存的值为方法的返回值。@CachePut: 方法一直会被执行,同时方法的返回值也被记录到缓存中。以下方法执行后,缓存的key为参数id,缓存对应的值为 entity。能够让方法的返回值被缓存起来,后续的请求可以直接从缓存中获取结果。执行方法后,缓存中的 key及参数 就被删除了。删除缓存中指定key的数据的。原创 2023-11-09 14:19:58 · 535 阅读 · 0 评论 -
Redisson使用延时队列
接着调用 addDelayQueue()方法,往队列中添加数据,观察日志,可以发现 5秒后,取到队列中的数据。调用 takeDelayQueue()方法,不断在延时队列中拉取数据,由于队列中没有数据,所以会先阻塞。如果使用 jdk自带的延时队列,那么服务器挂了或者重启时,延时队列里的数据就会失效,可用性比较差。取出延时队列中的任务,如果延时队列中没有任务,会阻塞,直到队列中添加了任务。比如,订单15分钟内未支付自动取消。可以使用Redisson的延时队列。在开发中,有时需要使用延时队列。原创 2023-10-12 22:28:14 · 1124 阅读 · 1 评论 -
SpringBoot集成Redisson的分布式锁
可以在 application.properties 中添加。原创 2023-10-12 20:55:37 · 395 阅读 · 0 评论 -
redis主从复制踩到的那些坑
一、报错:* MASTER <-> SLAVE sync started# Error condition on socket for SYNC: No route to host解决:详情见: https://blog.youkuaiyun.com/qq_28538407/article/details/81878609 主从复制时,如果主机状态如下:# Replicationrol...原创 2018-11-09 17:40:00 · 257 阅读 · 0 评论 -
Redis的简介
Redis 简介Redis 是一个高性能的key-value数据库。支持复杂的数据结构,支持持久化,支持主从集群,支持高可用,支持较大的value存储...Redis是一个nosql,非关系型数据库。Redis 与其他 key - value 缓存产品有以下几个特点:Reids是基于内存读写的。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行...原创 2018-08-21 22:38:00 · 54 阅读 · 0 评论 -
Redis备份及回收策略
Redis备份(持久化)Redis备份存在两种方式:1.一种是"RDB"。是快照(snapshotting),它是备份当前瞬间Redis在内存中的数据记录;2.另一种是"AOF"。只追加文件(Append-Only File,AOF),其作用是当Redis执行写命令后,在一定的条件下将执行过的写命令依次保存在Redis的文件中,将来就可以依次执行那些保存的命令恢复Redis的数据。对...原创 2018-10-29 16:18:00 · 160 阅读 · 0 评论 -
SpringBoot中使用Redis
在SpringBoot中使用Redis,思路如下:查询时先查Redis缓存,如果缓存中存在信息,就直接从缓存中获取。如果缓存中没有相关信息,就去数据库中查找,查完顺便将信息存放进缓存里,以便下一次查询。另外,更新或者删除数据库数据时,记得删除相关的缓存。在SpringBoot中使用Redis的步骤如下:1.首先,添加依赖包: <dependency> ...原创 2018-08-08 15:45:00 · 59 阅读 · 0 评论 -
Redis集群部署及命令
一、简介redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。redis集群提供了以下两个好处:将数据自动切分(split)到多个节点当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。集群中的主从复制集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点...原创 2018-11-13 11:20:00 · 109 阅读 · 0 评论 -
RedisUtil工具类
Redis工具类import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.*;import org.springframework.stereotype.Service;...原创 2023-05-31 22:58:00 · 86 阅读 · 0 评论 -
Redis数据结构的多种用法(转载)
分布式锁(string)setnx key value,当key不存在时,将 key 的值设为 value ,返回1。若给定的 key 已经存在,则setnx不做任何动作,返回0。当setnx返回1时,表示获取锁,做完操作以后del key,表示释放锁,如果setnx返回0表示获取锁失败。设置过期时期,当遇到宕机时,会在过期后释放锁。计数器(string)如知乎每个问题的被浏览器次数s...原创 2019-01-15 20:34:00 · 56 阅读 · 0 评论 -
Redis哨兵模式
哨兵模式(sentinel)Redis 提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待 Redis 服务器响应,从而监控运行的多个 Redis 实例 。Redis的sentinel系统用于管理多个redis服务器,该系统主要执行三个任务:监控、提醒、自动故障转移。1、监控(Monitoring): Redis Sentinel实时监控主服务器和从...原创 2018-10-31 15:29:00 · 68 阅读 · 0 评论 -
Redis集群架构【转载】
Redis 集群的 TCP 端口(Redis Cluster TCP ports)每个 Redis 集群节点需要两个 TCP 连接打开。正常的 TCP 端口用来服务客户端,例如 6379,加 10000 的端口用作数据端口,在上面的例子中就是 16379。 第二个大一些的端口用于集群总线(bus),也就是使用二进制协议的点到点通信通道。集群总线被节点用 于错误检测,配置更新,故障转移授权等等。...原创 2018-11-14 11:15:00 · 65 阅读 · 0 评论 -
Redis代码示例
集合成员是唯一的,这就意味着集合中不能出现重复的数据。如果key和value是String类型的,可以用StringRedisTemplate。value可以是普通的字符串,也可以将对象转换为Json字符串,设置为value。Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。add()方法,最后一个参数是分数,ZSet的排行,就是根据分数来排的。其中K,V类型,可以使用具体的类型,比如String或者其他具体类。ZSet是有序的集合,且不允许重复的成员。原创 2023-09-11 23:24:33 · 292 阅读 · 0 评论 -
redis.clients.jedis.exceptions.JedisException: Can connect to sentinel, but seems to be not monitor...
在使用Redis的哨兵Sentinel配置时,报错如下:redis.clients.jedis.exceptions.JedisException: Can connect to sentinel, but myMaster seems to be not monitored.报错原因:可能是因为哨兵配置sentinel.conf中的服务器名称,和程序中哨兵连接池配置的服务器名称不一致导致...原创 2018-11-12 10:48:00 · 225 阅读 · 0 评论 -
linux安装redis及主从复制、读写分离、哨兵模式
Redis安装与部署版本最好选择3.0及以上。以后还可以部署Redis集群。1.下载:[root@bogon redis-3.0.0]# cd /usr/local[root@bogon local]#wget http://download.redis.io/releases/redis-3.0.0.tar.gz2.解压:[root@bogon local]# tar -z...原创 2018-11-06 15:56:00 · 67 阅读 · 0 评论 -
Redis主从同步
主从架构主从架构设计的思路大概如下:只有一台主服务器,只负责写入数据,不负责读取数据。多台从服务器,不写入数据,只负责同步主服务器的数据,提供外部程序读取。主服务器写入数据后,将命令发送到从服务器,使主从数据同步。应用程序可以读取某一台从服务器的数据,负载均衡。当某些从服务器瘫痪时,系统影响不大。当主服务器瘫痪时,选举某一台从服务器成为主服务器Redis主从同步图中左边的流...原创 2018-10-31 11:17:00 · 47 阅读 · 0 评论 -
《Redis设计与实现》读书笔记
(重点部分加粗)第9章 :单机NoSql1.RedisServer有一个dbnum属性,默认值为16,所以Redis服务器会创建16个数据库。2.SELECT命令:切换数据库原理:通过修改RedisClient.db指针,让它指向服务器中的不同数据库,从而实现切换数据库的功能。3.数据库键空间dict字典保存了数据库中所有的键值对,这个字典称为"键空间"另外的,expires字典保...原创 2019-02-24 23:19:00 · 72 阅读 · 0 评论