value类型:string list hash set zset geo hyperloglog bitmap bitfield stream
set k1 v1 nx ex 60
setex k1 60 v1hello
setnx k1 v111111
ttl k1
set k1 v111 keepttl
get k1
mset k1 v1 k2 v2
mget k1 k2
set k1 100
incr k1
incrby k1 10
decr k1
decrby k1 10
strlen k1
append k1 vvv
持久化:RDB(全量快照dump.rdb) AOF(写指令记录日志appendonly.aof)
主从复制,哨兵监控,集群分片
redis与mysql双写一致性问题:
- 数据读取:双检加锁
- 数据更新
canal : 基于mysql binlog日志的增删改增量数据订阅消费组件
缓存雪崩:redis挂了;大量key同时过期。redis集群高可用,主从+哨兵,开启持久化;设置key永不过期或者过期时间随机;sentinel服务限流降级。
缓存穿透:大量请求查询不存在的key。布隆过滤器(google的guava包的布隆过滤器BloomFilter)+ 空值缓存。
缓存击穿:热点key过期。热点key不设置过期时间,双检加锁。
redisson分布式锁