[无排版]redis基本数据结构的应用

OJ开发受阻,先了解一下新玩意redis,只列出最基本的用法,作为我个人的了解

以下实际应用来自Redis开发与运维

redis用法

❤字符串

1.缓存

redis最常用的应用就是作为缓存层为存储层MySQL减负

if(redis.get(str) != null)...

2.共享Session

暂时用不着

3.计数

return redis.incr(key)

❤哈希

1.替换SQL持久化

书P36

法1 多个key

按照key=列,value=值,再用一个更大的key来映射多个列

set user:1:name tom

set user:1:age 13

set user:1:city beijing

set user:2.....

法2

set user:1:serializae(userInfo)

法2的缺点是每个属性不能单独更新

法3:多个field

hmset user:1 name tom age 23 city beijing

❤列表

1.MQ

lpush+brpop

2.文章分页

假设文章使用哈希存储

hmset article:1 title a timestamp b content c

hmset article:2....

添加则

lpush user:1:articles article:1 article:5

分页

atricles = lrange user:1:articles 0 9

for article in {articles}
hgetall {article}

3.有限集合 lpush+ltrim

4.Stack+Queue

❤集合

1.标签

sadd user:1:tags tag1 tag2 tag6

sadd tag1:users user:1 user:2

(以上需要在同一事务进行)

删除则同理用srem

计算共同感兴趣标签

sinter user:1:tags user:3:tags

❤有序集合

注意API是score member的形式

1.排行榜!!

mike获得3个赞

zadd user:ranking:today 3 mike

之后再获得1个赞用zincrby

取消赞 zren user:ranking:today mike

展示获赞Top10

zrevrangebyrank user:ranking:today 0 9

展示用户信息和分数

hgetall user:info:tom

zscore user:ranking:today tom

zrank user:ranking mike

上一篇:KMP算法及java实现


下一篇:PATA1025 PAT Ranking