Redis五种常用数据类型
Posted 街头卖艺的肖邦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis五种常用数据类型相关的知识,希望对你有一定的参考价值。
-
字符串常用操作
1.存入字符串键值对
SET key value
2.批量存储字符串键值对
MSET key value [key value ...]
3.获取一个字符串键值
GET key
4.批量获取字符串键值
MGET key [key ...]
5.删除一个键
DEL key [key ...]
6.设置一个键的过期时间(秒)
EXPIRE key seconds
-
原子加减
1.将key中存储的数字值加一
INCR key
2.将key中存储的数字值减一
DECR key
3.将key所存储的值加上increment
INCRBY key increment
4.将key所存储的值减去decrement
DECRBY key decrement
-
单值缓存
SET key value
GET key
-
对象缓存
1.SET user:1 value(json格式数据)
2.MSET user:1:name test user:1:balance 10086
MGET user:1:name user:1:balance
-
分布式锁
SETNX product:10001 true //返回1代表获取锁成功 SETNX product:10001 true //返回0代表获取锁失败 ....执行业务操作 DEL product:10001 //执行完业务释放锁 SET product:10001 true ex 10 nx //防止程序意外终止导致死锁
-
计数器
INCR article:readcount:{文章id}
GET article:readcount:{文章id}
-
Web集群session共享
spring session + redis 实现session共享
-
分布式系统全局序列号
//redis批量生成序列号提升性能 INCRBY orderId 1000
hash
-
hash常用操作
1.存储一个哈希表key的键值
HSET key field value
2.获取一个不存在的哈希表key的键值
HSETNX key field value
3.在一个哈希表key中存储多个键值对
HMSET key field value [field value ...]
4.获取哈希表key对应的field键值
HGET key field
5.批量获取哈希表key中多个field键值
HMGET key field [field ...]
6.删除哈希表key中的field键值
HDEL key field [field ..]
7.返回哈希表key中field数量
HLEN key
8.返回哈希表key中所有的键值
HGETALL key
9.为哈希表key中field键的值加上增量increment
HINCRBY key field increment
-
对象缓存 (类似map)
HMSET user {userId}:name test {userId}:age 10 HMGET user 1:name 1:age
list
-
list常用操作
1.将一个或多个值value插入到key列表的表头(最左边)
LPUSH key value [value ...]
2.将一个或多个值value插入到key列表的表尾(最右边)
RPUSH key value [value ...]
3.移除并返回key列表的头元素
LPOP key
4.移除并返回key列表尾头元素
RPOP key
5.返回列表key中指定区间内的元素,区间以偏移量start和stop指定
LRANGE key start stop
6.从key列表表头弹出一个元素,若列表中没有元素,阻塞则等待timeout秒,如果timeout=0,一直阻塞等待
BLPOP key [key ...] timeout
7.从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待
BRPOP key [key ...] timeout
set
-
set 常用操作
1.往集合key中存入元素,元素存在则忽略,若key不存在则新建 SADD key member [member ...]
2.从集合key中删除元素 SREM key member [member ...]
3.获取集合key中的所有元素 SMEMBERS key
4.获取集合key的元素个数 SCARD key
5.判断member元素是否存在于集合key中 SISMEMBER key member
6.从集合key中选出count个元素,元素不从key中不删除 SRANDMEMBER key [count]
7.从集合key中选出count个元素,元素不从key中删除 SPOP key [count]
-
set运算操作
1.交集运算 SINTER [key ...]
2.将交集结果存入新集合destination中 SINTERSTORE destination key [key ...]
3.并集运算 SUNION key [key ...]
4.将并集结果存入新集合destination中 SUNIONSTORE destination key [key ...]
5.差集运算 SDIFF key [key ...]
6.将差集结果存入新集合destination中 SDIFFSTORE destionation key [key ...]
sorted Set(zSet)
有序集合(sorted set
)和集合(set
)都不允许重复的成员;不同的是每个元素都会关联一个double类型的分数;redis正是通过分数来为集合中的成员进行从小到大的排序;有序集合的成员是唯一的,但分数(score
)却可以重复;zSet
的api与Set
的api大致相同;
1.向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZADD key score1 member1 [score2 member2] 2.通过索引区间返回有序集合指定区间内的成员 ZRANGE key start stop [WITHSCORES]
3.移除有序集合中的一个或多个成员
ZREM key member [member ...]
4.通过分数返回有序集合指定区间内的成员
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
5.返回有序集合中指定成员的索引
ZRANK key member,其中member按score值递增(从?到?)
以上是关于Redis五种常用数据类型的主要内容,如果未能解决你的问题,请参考以下文章
Redis 数据库下载与安装,五种数据类型及常用命令详细介绍