Redis
咘咘
这个作者很懒,什么都没留下…
展开
-
1.Redis初步了解
1.1简介数据库存储的弊端:数据库存储是面向磁盘的,磁盘的读写比较慢.(但是它廉价啊,一般都是TG级别) 当高并发(秒杀)时候,一瞬间成千上万的请求过来(连接不能及时释放),及其容易造成数据库系统瘫痪.服务器宕机 NoSqlNosql工具也是简易的数据库,是基于内存的数据库,有一定的持久化(但是内存贵啊,几百个G都是大的了),主要有Redis和MongoDB Redis...原创 2019-02-15 10:30:57 · 181 阅读 · 0 评论 -
8.Redis内存回收策略
6中内存回收策略volatile-lru:采用最近使用最少的淘汰策略,淘汰超时的键值对中使用最少的 allkeys-lru:对所有的键值对(包括有效的和超时的)采用最少淘汰策略 volatile-random:随机淘汰超时的键值对 allkeys-random:随机淘汰(有效和超时键值对) volatile-ttl:采用删除存活时间最短的键值对 Noeviction:根本不采用删除策...原创 2019-02-18 09:57:41 · 206 阅读 · 0 评论 -
7. Redis的备份
7.1 分类快照备份快照备份:备份瞬时redis在内存中的数据 如果文件比较大,备份的时候可能造成卡顿,但是恢复重启的速度快 追加文件备份: 追加文件(AOF)备份:当redis执行写命令后,在一定的条件下将执行过的写命令依次保存的文件中. 只是追加写入文件,所以备份一般不会造成卡段,但是恢复重启需要执行的命令需要很多,备份的文件也可能很大. 7.2 Redis的配...原创 2019-02-18 09:56:23 · 135 阅读 · 0 评论 -
6.Redis-使用lua语言
6.1 Evalsha 和LOAD 命令 Redis Script Load 命令用于将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本 脚本可以在缓存中保留无限长的时间,直到执行 SCRIPT FLUSH 为止。 Redis Evalsha 命令根据给定的 sha1 校验码,执行缓存在服务器中的脚本。 将脚本缓存到服务器的操作可以通过 SCRIPT LOA...原创 2019-02-18 09:51:38 · 157 阅读 · 0 评论 -
5.Redis超时命令
Redis有内存回收机制.当一个key超时后,会被做标记.但不会立即自动回收.这样做的好处是,当一个key的值是一个存有百万元素的list时候,如果超时后立即回收.需要很长时间,造成卡顿. Redis提供定时回收和惰性回收两种机制定时回收:确定某个时间触发一段代码,回收超时的键值对. 惰性回收:当一个key超时后,在执行下一次get操作的时候回收 定时回收可以完全回收超...原创 2019-02-18 09:48:53 · 461 阅读 · 0 评论 -
Redis的分布式锁
1.设置超时时间,即使获取到锁后,客户端挂掉了,一定时间后锁释放。不会出现死锁。2.每个锁对象都有一个自己的uuid作为redis 的value。当释放锁的时候,先去判断当前key对应的value是否还是本是当前对象的value.(但是本实例中没有这个场景)3.防止操作阻塞超过了超时,本实例中会不断的重置超时时间。如果锁释放,重置超时会返回0,则中断循环。但是不断重置超时可能会造...原创 2019-02-21 16:48:34 · 234 阅读 · 0 评论 -
5.redis的订阅模式
比如,你银行账号存款有变动,会收到短信,邮件等.Subscribe:监听通道(监听一个叫chat的通道)Publish :向通道发送消息 客户端1客户端2代码段 小部件在spring中应用除了RedisTemplate之外 需要实现MessageListener的实现类 以及运行listener的容器RedisMessageListenerCont...原创 2019-02-15 18:11:55 · 242 阅读 · 1 评论 -
4.Redis的基础事务
4.1事务 1.执行multi开始一个事务,之后的命令并没有立即执行,而是放到任务队列中的,等到exec执行后,才会执行命令 2.事务的原子性可以保证,事务开始后执行的命令有错,那么之前的操作撤销. 3.但是执行的命令没错,数据类型错误导致的失败,不影响其他命令的执行 Spirng 中@RunWith(SpringJUnit4ClassRunn...原创 2019-02-15 18:08:33 · 242 阅读 · 1 评论 -
Redis数据结构- 哈希
哈希里面存的都是string类型的key和value 一:命令行 二: spring中使用 1.配置文件spring-mvc-redis.xml <mvc:annotation-driven/> <context:component-scan base-package="Dao,Tenseven"/> ...原创 2019-02-15 18:02:35 · 140 阅读 · 0 评论 -
2.Redis的数据结构
Redis的六种数据结构2.1 字符串字符串是redis最基本的数据结构,它是将以一个键和一个值存储于Redis内部.2.1.1 Redis客户端命令:2.1.2在spring中使用以上命令Spring的redisTemplate类(以及opsForValue方法)中封装了一定的redis的客户端命令 比如:redisTemplate.opsForValu...原创 2019-02-15 17:53:11 · 192 阅读 · 0 评论 -
10. 使用spring缓存机制整合Redis+mybatis
19.2.1表达式引用#Argument:是指的方法中的参数#result:方法返回的结果.不可以用于@Cacheable,因为当前方法可能不被执行19.2.2注解 19.2.2.1 @EnableCaching相当于xml中的 <cache:annotation-driven /> 开启注解缓存管理(可以使用注解来管理缓存-@...原创 2019-02-18 10:15:45 · 229 阅读 · 0 评论