1、RedisTemplate和StringRedisTempalate
redisTemplate使用的是jdkSerializationRedisSerializer序列化对象,可以用来存储对象,但是要实现Serializable接口,以二进制数组存储,没有可读性。
stringRedisTemplate使用的是StringRedisSerializer序列化string,主要用来存储字符串,StringRedisSerializer的泛型特指String。
2、@Autowrite和@Resoure
autowrite以类型注入bean,resource以名称注入bean。
@Autowrite
private RedisTemplate redisTemplate;(默认根据bean的名字装配)
||
@Resource
private RedisTemplate<String,Object> redisTemplate;(必须根据名字装配)
RedisTemplate<String,String> redisTemplate 和 StringRedisTemplate是同一个bean
@Resource
private StringRedisTemplate redisTemplate 报错,因为Resource默认根据名称注入
正确:StringRedisTemplate stringRedisTemplate
3、redisTemplate操作类型
ValueOperations
HashOperations
ListOperations
SetOperations
ZetOperations
4、Redis数据结构及底层
string:简单动态字符串
list:双向链表linkedlist和压缩链表ziplist
hash:ziplist和hashtable
set:intset我们可以理解为数组,hashtable就是普通的哈希表(key为set的值,value为null)
zset:ziplist或skiplist(跳表)
5、RDB和AOF
- RDB是将支持当前数据的快照存成一个数据文件的持久化机制。
- AOF: Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。AOF的工作原理就是是将写操作追加到文件中,文件的冗余内容会越来越多。所以Redis 新增了重写机制。当AOF文件的大小超过所设定的最大值时,Redis就会对AOF文件的内容压缩。