Redis基本数据类型

 String操作

常用操作

#存储

SET  key  value |MSET  key1  value1  key2 value2 ...

#新建一个键值对存储,通过返回1或0判断是否添加成功

SETNX  key  value   true

#获取    

GET  key | MGET  key1 key2 ...

#删除

DEL  key | DEL  key1  key2 ...

#设置过期时间

expire(秒)|pexpire(毫秒)  key  seconds 

#取消过期时间

persist key

#查看过期时间

ttl(秒)|pttl(毫秒) key

运算

#将key中储存的数字值加1

INCR  key  

#将key中储存的数字值减1

DECR  key  

#将key所储存的值加上increment,过去key不存在则新建,value初始化为0

INCRBY  key  increment

#将key所储存的值减去decrement

DECRBY  key  decrement 

----------------------------------------------

m:批量; expire:过期时间;nx:原子操作

set、mset、get、mget、del、expire、setnx

in:加; de:减; by 按量

incr、decr、incrby、decrby

----------------------------------------------

应用场景:

1、分布式锁

2、计数器,用于朋友圈点赞等

3、批量生成分布式ID

4、分布式Session

 Hash操作

常用操作 

#存储一个哈希表key的键值

HSET  key  field  value

#新建一个键值对存储,通过返回1或0判断是否添加成功            

HSETNX  key  field  value 

#在一个哈希表key中批量存储键值对

HMSET  key  field1  value1  field2  value2 ...

#获取哈希表key对应的field键值

HGET  key  field    

#批量获取哈希表key中多个field键值

HMGET  key  field1 field1 

#删除哈希表key中的field键值

HDEL  key  field1 field2 ...

#获取哈希表key中field的数量

HLEN  key

#返回哈希表key中所有的键值

HGETALL  key

#哈希表key中field键的值加上增量increment

HINCRBY  key  field  increment

----------------------------------------------

H:哈希结构;len:长度;all:所有

hset、hget、hsetnx、hmset、hdel、hlen;hgetall

hincr、hdecr、hincrby、hdecrby

----------------------------------------------

应用场景:购物车设计

用户Id为key、商品id为filed、商品数量为value

#添加商品

hset user0001 1111 2

增加数量

hincrby user0001 1111 1

获取商品总数

hlen user0001

删除商品

hdel user0001 1111

获所有商品

hgetall user0001

List操作

常用操作

 //将一个或多个值value插入到key列表的表头(最左边)

LPUSH  key  value [value ...]      

 //将一个或多个值value插入到key列表的表尾(最右边)

RPUSH  key  value [value ...]       

//移除并返回key列表的尾元素

LPOP  key 

//移除并返回key列表的尾元素

RPOP  key            

//返回列表key中指定区间内的元素,区间以偏移量start和stop指定

LRANGE  key  start  stop

 //从key列表表头弹出一个元素,若列表中没有元素,阻塞等待timeout秒

BLPOP  key  [key ...]  timeout  

//从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒

BRPOP  key  [key ...]  timeout 

----------------------------------------------

l:left(左); r:right(右); push:压栈;pop:出栈; b:block(阻塞)

lpush、rpush、lpop、rpop、blpop、brpop

----------------------------------------------

使用场景

可以作为栈、队列、阻塞队列

Stack(栈) = LPUSH + LPOP

Queue(队列)= LPUSH + RPOP

Blocking MQ(阻塞队列)= LPUSH + BRPOP

----------------------------------------------

商品抢购场景:可以将商品从头部压入列表,另一个线程从队列中轮训获取商品数据进行处理,当list空了就会抛出异常,代表抢购商品售卖完了

关注公众号:

#用户userId001 关注公众号account111 account112 ...

lpush userId001 account111 account112 ...

#获取最近关注的0-3个公众号

lrange userId001 0 3

Set操作

常用操作

#新建一个Set集合

SADD  key  member member2 ...  

#删除集合元素

SREM  key  member member2 ... 

#获取集合所有元素

SMEMBERS  key         

#获取集合元素数量

SCARD  key    

#判断元素是否存在key中(1存在,0不存在)

SISMEMBER  key  member  

#从集合中随机选取count个元素,元素不删除

SRANDMEMBER  key  count 

#从集合中随机选取count个元素,元素删除

SPOP  key  [count]               

运算

#获取key1 key2  ... 交集

SINTER  key1 key2  ... 

#将key1  key2 ...交集存入新集合destination中             

SINTERSTORE  destination  key1  key2 ...

#获取key1 key2  ... 并集

SUNION   key1 key2  ... 

#将key1  key2 ...并集存入新集合destination中    

SUNIONSTORE  destination  key1 key2  ... 

#获取key1 key2  ... 差集

SDIFF   key1 key2  ...          

#将key1  key2 ...差集存入新集合destination中  

SDIFFSTORE  destination key1 key2  ...  

----------------------------------------------

s:set结构;rem:remove(删除);member:成员;rand:随机;pop:出栈

sAdd、sRem、sMembers、sCard、sIsMember、sRandMember、sPop

inter:intersection(交集);store:储存;union:联合、并集;diff:different(不同的、差集)

sInter、sInterStore、sUnion、sUnionStore、sDiff、sDiffStore

----------------------------------------------

应用场景

抽奖程序:

#抽奖成员添加到集合

 SADD  key  userId01 userId02 ...

#随机获取count个中奖者

SRANDMEMBER  key  count /SPOP  key  [count]   

----------------------------------------------

朋友圈点赞功能

#点赞

SADD  myId:newsId:like userid

取消点赞

SREM myId:newsId:like userid

3) 检查用户是否点过赞

SISMEMBER  myId:newsId:like userid

4) 获取点赞的用户列表

SMEMBERS myId:newsId:like

5) 获取点赞用户数

SCARD myId:newsId:like

Zset操作

常用操作

#往集合key中加入带分值元素

ZADD key score1 member1  score2 member2 ...

#从集合中删除元素

ZREM key member1 member2 ...

#返回集合key中元素member的分值

ZSCORE key member 

#为集合key中元素member的分值加上increment           

ZINCRBY key increment member

#返回集合key中元素个数

ZCARD key              

#正序获取集合key从start下标到stop下标的元素

ZRANGE key start stop WITHSCORES 

#倒序获取集合key从start下标到stop下标的元素

ZREVRANGE key start stop WITHSCORES

运算

#并集计算

ZUNIONSTORE destination numkeys key1 key2...     

#交集计算

ZINTERSTORE destination numkeys key1 key2...   

#destination:新的集合的key、numkeys集合的个数

# 新集合number分值是多个集合中分值的和

----------------------------------------------

z:zset结构;rem:remove(删除);Score:得分;in:加;by 按量;Range:范围;rev:reverse(倒序)

zAdd、zRem、zScore、zIncrBy、zCard、zReange、zRevRange

inter:intersection(交集);store:储存;union:联合、并集;

zUnionStore、zinterStore

----------------------------------------------

应用场景

#点击新闻

ZINCRBY  news:20230220  1  新闻

#当日排行前十

ZREVRANGE   news:20230220 0  9  WITHSCORES

#三日搜索榜单

ZUNIONSTORE  news:20230220-news:20230222   3   news:20230220  news:20230221  news:20230220  

#三日搜索榜单前十

ZREVRANGE   news:20230220-news:20230222  0  9  WITHSCORES                                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值