摘要:
redis提供了不同的持久化选项 RDB持久化以指定的时间间隔执行数据集的时间点快照 AOF持久化记录服务器接收的每个写入操作,将在服务器启动时再次读取,重建原始数据集。使用与redis协议本身相同的格式以仅追加方式记录命令,当文件太大时,redis能够重写 RDB的优缺点 优点 RDB最大限度的提 阅读全文
摘要:
rewrite重写介绍 AOF文件越来越大,需要定期对AOF文件进行重写达到压缩 旧的AOF文件含有无效命令会被忽略,保留最新的数据命令 多条写命令可以合并为一个 AOF重写降低了文件占用空间 更小的AOF文件可以更快的被redis加载 重写触发配置 手动触发 直接调用bgrewriteaof命令 阅读全文
摘要:
AOF持久化介绍 append only file,追加文件的方式,文件容易被人读懂 以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的 写入过程宕机,也不影响之前的数据,可以通过redis-check-aof检查修复问题 配置实战 appendonly yes,开 阅读全文
摘要:
redis持久化介绍 redis是一个内存数据库,如果没有配置持久化,redis重启后数据就全丢失 因此开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据 两种持久化方式 RDB(Redis DataBase) AOF(append only file) RDB 阅读全文
摘要:
1.缓存击穿+解决方案 缓存击穿(某个热点key失效) 缓存中没有但数据库中有的数据,假如是热点数据,那么key在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力增大。 和缓存雪崩的区别在于这里针对某一key缓存,后者则是很多key 预防 设置热点数据不过期;定时 阅读全文
摘要:
1.Cacheable使用缓存 @Cacheable注解 标记在一个方法上,也可以标记在一个类上 缓存标注对象的返回结果,标注在方法上缓存该方法的返回值,标注在类上缓存该类所有的方法返回值 value:缓存名称,可以有多个 key:缓存的key规则,可以使用SpringEL表达式,默认是方法参数组合 阅读全文
摘要:
package com.gen.config; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.f 阅读全文
摘要:
官方文档:http://www.redis.cn/commands.html 1.通用命令 exists:判断key是否存在 del:删除key type:判断key类型 ttl:查看key存活时间 2.String类型命令 set/get:设置和获取key-value mset/mget:批量设置 阅读全文
摘要:
RedisTemplate介绍 ValueOperations:简单K-V操作 SetOperations:set类型数据操作 ZSetOperations:zset类型数据操作 HashOperations:针对map类型的数据操作 ListOperations:list类型的数据操作 Redis 阅读全文
摘要:
创建相关目录 日志 mkdir /usr/local/redis/log 数据 mkdir /usr/local/redis/data 配置文件 mkdir /usr/local/redis/conf 创建自定义配置文件vim redis.conf # 任何ip都可以访问 bind 0.0.0.0 阅读全文
摘要:
1.日期时间相关 1-1.查询时间是否是今天 SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW()) 1-2.查询昨天(几天前)的数据 SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段名) 阅读全文
摘要:
/** * 中间商 **/ class Medium { // 当前库存 private int num = 0; // 最大库存 private static final int TOTAL = 10; /** * 接收生产数据 **/ public synchronized void put() 阅读全文
摘要:
自旋锁:线程状态及上下文切换消耗系统资源,当访问共享资源的时间短,频繁上下文切换不值得。JVM实现,使线程在没获得锁的时候不被挂起,转而执行空循环,循环几次之后,如果还没能获得锁,则被挂起 阻塞锁:阻塞锁改变了线程的运行状态,让线程进入阻塞状态进行等待,当获得相应的信号(唤醒或者时间到)时,才可以进 阅读全文
摘要:
饿汉式--本身线程安全 在类加载的时候,就已经进行实例化,无论之后用不用到。如果该类比较占内存,之后又没用到,就白白浪费了资源 public class HungerSingleton { private static final HungerSingleton INSTANCE = new Hun 阅读全文
摘要:
能且仅能修饰变量 保证该变量的可见性,volatile关键字仅仅保证可见性,并不保证原子性 禁止指令重排序 A、B两个线程同时读取volatile关键字修饰的对象,A读取之后,修改了变量的值,修改后的值对B线程来说,是可见的 使用场景: 作为线程开关 单例,修饰对象实例,禁止指令重排序 阅读全文