本篇概要: 1. 设置、查询、获取过期时间; 2. 缓存穿透:设置空键; 3. 封杀单ip; 4. 封杀ip段; 5. 缓存预热; 6. 使用 hash 数据类型保存新闻的缓存,增加点击量; 7. Sorted set(有序集合) 分离新闻缓存内容和新闻点击量、排行榜、预热新闻;
1. 设置、查询、获取过期时间;
set key value
get key
ttl key
2. 缓存穿透:设置空键;
先从redis取,没取到再数据库取,再没取到设置默认值 如果是默认缓存,到一定次数不让再刷
expire
3. 封杀单ip;
对于单独ip,开辟一个 key value,key = 前缀 + ip
4. 封杀ip段;
list 类型,列表,可以塞入字符串,可以按顺序也可直接插入奥列表头部尾部
lpush key value
llen
lpush users hua
lpush users zhang
lrange users 0 - 1
del users
rpush users zhang
rpush users hualrange users 0 - 1
实战:ip前三段,装入list。ip段数量到阈值,整段被禁止
5. 缓存预热;
set users hua EX 200
ttl users
6. 使用 hash 数据类型保存新闻的缓存,增加点击量;
当缓存拥有多个独立字段,且会发生变化时,单纯的string就不适合了 hash数据类型,常用于商品缓存
hset key field value
hget key fieldhset news101 news_id 101
hset news101 news_title testtitlehget news101 news_id
hgetall news101
hgetall key
hkeys key
hvals keys hmset news102 news_id 102 news_title testtitle2
hmget news102 news_id news_title
hincrby news102 views 1
7. Sorted set(有序集合) 分离新闻缓存内容和新闻点击量、排行榜、预热新闻;
之前还有个 set 类型 Sorted set 自带一个 score,适合排行榜
zadd key score member
zadd news 19 news101:
zadd news 12 news101
zadd news 31 news102
zrange news 0 - 1
zrange news 0 2
zrange news 0 - 1 withscores
zrank news
zrevrange news 0 - 1 with score
zincrby news 1 news101
zscore news news101
zrange news 0 - 1
zrangebyscore news 15 22
zrevrangebyscore news 22 15