java操作
JEDIS常用API
jedis set 的四个重载方法(byte[]的四个自动忽略)
redis的分布式锁
spring操作redis
对一个key的多次操作可以绑定一下 之后就不用特意声明是取的哪一个key
分布式缓存
比如mybatis的缓存就是一个应用对着一个
一个应用对应着自己的一个缓存
而分布式建立在集群上 是希望多个应用对应同一个缓存
mybatis的二级缓存是存的namespace中的id
mybatis的Cache里面的构造函数是id
我们实现redis的缓存的时候也模仿一下传id
在put中放入一个hash类型的存储
做了那些工作呢?
从工厂类中获取redistemplate
为他的KEY都做序列化
put方法取出 id名的hash存储类型的 key为key的value值
清空缓存中 只要进行增删改都会把缓存清空
增删改把缓存清空 为的是保证之后查询都查询到的是数据库中最新的数据
共享缓存
redis之间存储每个表就像 1个hash类型
key 就是namespace的id 对应着一个mapper 作为一个hash 其中存在着不同的sql
对一个表的增删改都会清空当前这个表对应的缓存
第二个表比如userfile表就是第二个key对应着第二个hash 也只会清空自己所对应的缓存
那么如果两个表之间有关联怎么办?
userinfo表当中的缓存都放入emp当中 二者共享缓存
上面的小key就是hash中的小key 其实是很长的一般都推荐用md5把key变短便于存储到redis 也便于从缓存中取出
当很多用户在此时缓存1小时 然后经过1小时之后所有的缓存都失效 就开始走数据库 于是会发生