Redis API

142 阅读3分钟

redis的数据结构

string value结构就是字符串

hash key-value

list 多个元素组成的列表

set 集合

zset 有序集合(每个元素带了一个序号)

string 的用法

单值缓存
set    key value

设置多个值
MSET   key value    多个   内存占用也少,效率快点

分布式锁的用法
setnx  key value   分布式锁  1:表示设置成功  0:表示设置失败   业务处理完要释放

计数器
inCR               每次执行完+1

web集群session共享
spring session +redis实现session共享

分布式系统全局序号列
incrby orderId 1000

hash的用法

 hset key field value   存储一个哈希表的key value


 优点
 1.比同类数据归类整合处理
 2.相比string操作消耗内存与cpu更小
 3.相比string更节省空间
 
 缺点
 1.过期的功能不能使用在在field上,只能用在key上面
 2.redis集群架构下适合大规模使用
 
 hset     key  field  value           user  id:name nameValue    单个

 hmset    key  field  value           user  id:name nameValue    多个
 
 hincrby  key fileld  increment                                  对某个field递增  
 
 hlen     key                                                    获取某个key下面的总数量(field的数量)
 
 hdel     key  field                   user  id:name             删除field
 
 hgetall  key                                                    获取key下面的所有的field
 

List的用法

Lpush  key value[value,value]    L是指往列表的左边放值

Rpush  key value[value,value]    L是指往列表的右边放值

LPOP   key                       L从左边出队

RPOP   key                       R从右边出队

BLPOP key[key...] timeout        从列表的左边弹出一个元素,若列表中没有,则阻塞等待,timeout=0,就会一直阻塞

BRPOP key[key...] timeout        从列表的右边弹出一个元素,若列表中没有,则阻塞等待,timeout=0,就会一直阻塞

LRANFE key start stop            获取key中指定区间的元素

常用的数据结构

stack(栈)               LPUSH+LPOP  FILO   

query(队列)             LPUSH+RPOP  

BlockingMQ(阻塞队列)    LPUSH+BRPOP    

set 用法

 //场景:点赞
SADD key member [member...]   往集合key中放元素,元素存在则忽略,若key不存在则新建 
 
//场景:取消点赞
SREM key member [member...]   从集合中删除元素

//场景:获取点赞的用户列表
SMEMBERS key                  获取集合中key的所有的元素

//场景:获取点赞数
SCARD    key                  获取集合中key的元素个数

//场景:用户是否点过赞
SISMEMBER key member          判断member元素是否在于集合key//场景:抽奖
SRANDMEMBER key [count]      从集合key中选出count个元素,元素不从key中删除

// 场景抽奖
STOP KEY [count]             从集合中选出count个元素,并删除

set 集合操作

SINTER set1  set2   set3 ->{c}  交集

SUNION set1  set2   set3 ->{a,b,c,d} 并集

SDIFF  set1  set2   set3 ->{a}  以第一个元素为标准减去重复的元素

Zset常用操作(有序集合)

ZADD key score member [[score member]]    往有序集合key中批量添加带分值的元素

ZREM key member[member.....]              往有序集合key中删除元素        

ZSCORE key member                         返回有序集合中key中元素的member的分值

ZINCRBY key increment member               为key中元素member的分值加上increment

ZCARD  key                                 返回有序集合key中的元素个数

ZRANGE key start stop [WITHSCORES]         正序获取有序集合key从start下标到stop下标元素

ZREVRANGE key start stop [WITHSCORES]      倒序获取有序集合key从start下标到stop下标元素

Zset集合操作

ZUNIONSTORE   destkey numkeys key[key...]  //并集计算

ZINTERSTORE   destkey numbeys key[key...] //交集计算