三、Redis的常见命令及使用

版权声明: https://blog.csdn.net/xyphf/article/details/82846982

对value操作的命令

exists(key) // 确认一个key是否存在
del(key) // 删除一个key
type(key) // 返回值的类型
keys(pattern) // 返回满足给定pattern的所有key
randomkey // 随机返回key空间的一个
keyrename(oldname,newname) // 重命名key
dbsize // 返回当前数据库中key的数目
expire // 设定一个key的活动时间(s)
ttl // 获得一个key的活动时间
select(index) // 按索引查询
move(key,dbindex) // 移动当前数据库的key到dbindex数据库
flushdb // 当前数据库中的所有key
flushall // 删除所有数据库中的所有key

对string操作命令

set(key, value) // 给数据库中名称为key的string赋予值value
get(key) // 返回数据库中名称位key的string的value
getset(key,value) // 给名称为key的string赋予上一次的vvalue
mget(key1,key2,...,key N) // 返回库中多个string的value
setnx(key,value) // 添加string,名称为key,值为value
setex(key,time,value) // 向库中添加string,设定过期时间time
mset(key N,value N) // 批量设置多个string的值
msetnx(key N,value N) // 如果所有名称为key i的string都不存在
incr(key) // 名称为key的string增1操作
incrby(key,integer) // 名称为key的string增加integer
decr(key) // 名称为key的string减1操作
decrby(key,integer) // 名称为key的string减少integer
append(key,value) // 名称为key的string的值附加value
substr(key,start,end) // 返回名称为key的string的value的子串

对List操作的命令

rpush(key,value) // 在名称为key的list尾添加一个值为value的元素
lpush(key,value) // 在名称为key的list头添加一个值为value的元素
llen(key) // 返回名称为key的list的长度
lrange(key,start,end) // 返回名称位key的list中的start至end之间的元素
ltrim(key,start,end) // 截取名称位key的list
lindex(key,index) // 返回名称位key的list中的index位置的元素
lset(key,index,value) // 给名称为key的list中的index位置的元素赋值
lrem(key,count,value) // 删除count个key的list中值为value的元素
lpop(key) // 返回并删除名称为key的list的首元素
rpop(key) // 返回并删除名称为key的list的尾元素
bloop(key1,key2,...,key N,timeout) // lpop命令的block版本
brpop(key1,key2,... N,timeout) // rpop的block版本
rpoplpush(srckey,dstkey) // 返回并删除名称位srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

对Set操作的命令

sadd(key,member) // 向名称为key的set中添加元素member
srem(key,member) // 删除名称位key的set中的元素member
spop(key) // 随机返回并删除名称为key的set中的一个元素
smove(srckey,dstkey,menber) // 移到集合元素
scard(key) // 返回名称为key的set的基数
sismember(key,member) // member是否是名称为key的set的元素
sinter(key1,key2,..key N) //求交集
sinterstore(dstkey,(keys)) // 求交集并将交集保存到dstkey的集合
sunion(key1,(keys)) // 求并集
sunionstore(dstkey,(keys)) // 求并集并将并集保存到dstkey的集合
sdiff(key1,(keys)) // 求差集
sdiffstore(dstkey,(keys)) // 求差集并将差集保存到dstkey的集合
smembers(key) // 返回名称为key的set的所有元素
arandmember(key) // 随机返回名称位key的set的一个元素

对Hash操作的命令

hset(key,field,value) // 向名称位key的hash中添加元素field
hget(key,field) // 返回名称为 key的hash中field对应的value
hmget(key,(fields)) // 返回名称为key的hash中的field i对应的value
hmset(key,(fields)) // 向名称位key的hash中添加元素field
hincrby(key,field,integer) // 将名称位key的hash中的field的value增加integer
hexists(key,field) // 名称为key的hash中是否存在键为field的域
hdel(key,field) // 删除名称为key的hash中键为field的域
hlen(key) // 返回名称位key的hash中元素的个数
hkeys(key) // 返回名称为key的hash中的所有键
hvals(key) // 返回名称位key的hash中所有键对应的value
hgetall(key) // 返回名称为key的hash中所有的键(field)及对应的value

Redis数据类型

string(字符串)

- string是redis最基本的类型,而且string类型是二进制安全的。意思是redis的string 可以包含任何数据。比如jpg图片或者序列号的对象

- 从内部实现来看其实string可以看作byte数组,最大上限是1G字节

- string类型的值也可以视为integer,从而可以让"incr"命令族操作,这种情况下,该integer的值限制在64位有符和数

- 在list、set和zset中包含的独立的元素类型都是string类型

应用场景:string是最常用的一种数据类型,普通的key/value存储

list(双向链表)

- redis的list类型其实就是一个每个子元素都是string类型的双向链表,所有[r]push和[r]pop命令的算法时间复杂度都是O(1),另外list回记录链表的长度,所以llen操作也是O(1).

- 可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得;list既可以用做栈,也可以用作队列

扫描二维码关注公众号,回复: 3976214 查看本文章

- list最大长度是2^32-1个元素

应用场景: Redis list应用场景非常多,也是Redis最重要的数据结构之一,比如twitter的关注列表,粉丝列表等都可以用Redia的list结构来实现

set(无序集合)

- set就是redis string的无序集合,不允许有重复元素

- set的最大元素是2^32-1

- 对set的操作还有交集、并集、差集等

应用场景:Set对外提供的功能与list类似,当你需要存储一个列表数据,又不希望出现重复数据时,set是个很好的选择,并且set提供了判断某个成员是否在set集合内的接口,这个也是list所不能提供的

Sorted set(有序集合)-- zset

- zset是set的一个升级版本,在set的基础上增加了一个顺序熟悉,这一数据在添加修改元素时可以指定,每次指定后set会自动安装指定值重新调整顺序。可以理解位一张表,一列存value,一列存顺序,操作中的key理解位zset的名字。

- zset的最大元素是2^32-1

- 对于已经有序的zset,仍然可以使用sort命令,通过指定asc|desc参数对起进行排序。

应用场景: Sorted set的使用场景与set类似,区别不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序,当你需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构

hash(hash表)

- redis Hash类型对数据域和值提供了映射,这一结构很方便表示对象

- 在Hash中可以只保存有限的几个"域",而不是将所有的“域”作为key,这可以节省内存

应用场景:比如,我们存储供应商酒店价格的时候可以采取此结构,用酒店编码作为key,价格信息作为value

猜你喜欢

转载自blog.csdn.net/xyphf/article/details/82846982