
缓存
文章平均质量分 85
蛋焊工
搬砖小学生
展开
-
实现分布式锁的三种方式
1、数据库的乐观锁(版本号机制)悲观锁与乐观锁2、基于Redis的分布式锁加锁public class RedisTool { private static final String LOCK_SUCCESS = "OK"; private static final String SET_IF_NOT_EXIST = "NX"; private ...原创 2017-12-09 15:55:41 · 470 阅读 · 0 评论 -
Redis问题总结
Redis无论有没有设置expire,他都会遵循redis的配置好的删除机制,在配置文件里设置: redis最大内存不足时,数据清除策略,默认为"volatile-lru"。 In Redis 2.6 or older the command returns -1 if the key does not exist or if the key exist but has no associated expire. Starting with Redis 2.8 the retur..原创 2021-02-20 12:33:23 · 1381 阅读 · 0 评论 -
Redis集群模式
1、主从模式(Master-slave)Redis 如何实现主从模式?Redis 的从服务器在向主服务器发起同步时,一般会使用 SYNC 或 PSYNC(Redis 2.8版本)命令。初次同步当从服务器收到 SLAVEOF 命令后,会向其主服务器执行同步操作,进入主从复制流程。从服务器向主服务器发起SYNC 或 PSYNC 命令 主服务器执行 BGSAVE命令,生成 RDB 文件,并使用缓存区记录从现在开始的所有写命令 RDB 文件生成完成后,主服务器会将其发送给从服务器..原创 2021-07-20 15:07:46 · 214 阅读 · 1 评论 -
Redis的两种持久化RDB和AOF
Redis持久化备份数据的方式有两种:RDB(Redis DataBase) 、 AOF(Append Only File).1、什么是RDB在指定时间间隔内,将内存中的数据集快照写入磁盘,存储在默认名为dump.rdb的文件中。(要注意,这个文件的位置取决于redis-server启动时的路径)在redis进行rdb持久化数据时,会fork一个完全一样的进程作为redis的子进程,由子进程来完成数据写入磁盘的工作。在这个过程中,只有子进程来负责IO操作,主进程仍然处理客户端的请求,这就确保了.原创 2020-08-31 17:22:10 · 235 阅读 · 0 评论 -
MySQL里有2000w数据,Redis中只存20w的数据,如何保证redis中的数据都是热点数据?
相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰;volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰;volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰;allkeys-l原创 2020-08-31 17:38:13 · 1361 阅读 · 0 评论 -
Redis为什么是单线程还这么快?
1、Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽;2、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU;3、采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。多路-指的是多个socket连接,复用-指的是复用一个线程。...原创 2020-03-25 12:05:36 · 261 阅读 · 0 评论 -
SpringCache之 @CachePut
使用CachePut注解,该方法每次都会执行,会清除对应的key值得缓存(或者更新),分为以下两种情况:如果返回值null,下次进行该key值查询时,还会查一次数据库,此时相当于@CacheEvict注解; 如果返回值不为null,此时会进行该key值缓存的更新,更新缓存值为返回的数据;分析:情况一返回值为null: //使用Redis缓存 @Cacheable(val...原创 2019-03-06 20:32:23 · 10272 阅读 · 0 评论 -
SpringCache之 @CacheEvict
allEntries注解使用CacheEvict注解,会清除对应的Key值得缓存,分为以下两种情况:如果使用allEntries为true时,测试会把所有value对应的缓存全部删除; 如果allEntries为false(默认),此时只会删除该key值的缓存; @CacheEvict(value="User",key="#id.toString()",allEntries=tr...原创 2019-03-07 14:27:34 · 3153 阅读 · 0 评论 -
实现Redis分页查询 java
https://blog.youkuaiyun.com/weixin_36563269/article/details/80804916https://blog.youkuaiyun.com/hadoopxsy/article/details/80009413https://blog.youkuaiyun.com/tianluke1234/article/details/80431222https://blog.csd...原创 2019-03-10 21:48:23 · 4019 阅读 · 2 评论