redis数据操作命令
string类型
设置键值
如果设置的键不存在则为添加,如果设置的键已经存在则修改
#set key value 设置键值
set name zhangsan
设置键值及过期时间,以秒为单位
#setex key seconds value
setex timeout 10 '10秒后自动消失'
设置多个键值
#mset key1 value1 key2 value2 ..
mset a1 python a2 java a3 C
追加值
#append key value
127.0.0.1:6379> append a3 ++
(integer) 3
获取值
#get key 获取单个值
127.0.0.1:6379> get name
"zhangsan"
#mget key1 key2... 此处没有逗号分割键
127.0.0.1:6379> mget a1 a2 a3
1) "python"
2) "java"
3) "C++"
删除键
#del key #通用
127.0.0.1:6379> del name
(integer) 1
##键命令
查找键,参数⽀持正则表达式
keys pattern
127.0.0.1:6379> keys *
1) "num1"
2) "slogan"
3) "eunuch"
4) "source"
5) "year"
127.0.0.1:6379> keys *u*
1) "num1"
2) "eunuch"
3) "source"
判断键是否存在,如果存在返回1,不存在返回0
exists key1
查看键对应的value的类型
type key
删除键及对应的值
del key1 key2 ...
设置过期时间,以秒为单位
如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
expire key seconds
查看有效时间,以秒为单位
ttl key
hash类型
hash⽤于存储对象,对象的结构为属性、值
值的类型为string
数据结构:
增加、修改
设置单个属性
127.0.0.1:6379>#hset key field value
127.0.0.1:6379> hset son name 张三
(integer) 1
设置多个属性
127.0.0.1:6379>#hmset key field1 value1 field2 value2 ...
127.0.0.1:6379> hmset son name 张三 age 18 sex 女
获取属性
127.0.0.1:6379>#hkeys key
127.0.0.1:6379> hkeys son
1) "name"
2) "age"
3) "sex"
获取⼀个属性的值
127.0.0.1:6379> hget key field
127.0.0.1:6379> hget son age
"18"
获取多个个属性的值
127.0.0.1:6379> hmget son age name
1) "18"
2) "\xe5\xbc\xa0\xe4\xb8\x89"
获取所有属性的值
hvals key
127.0.0.1:6379> hvals son
1) "\xe5\xbc\xa0\xe4\xb8\x89"
2) "18"
3) "\xe5\xa5\xb3"
list类型
列表的元素类型为string
按照插⼊顺序排序
增加
在左侧插⼊数据
lpush key value1 value2 ...
127.0.0.1:6379> lpush year long hou ma tu
(integer) 4
在右侧插⼊数据
rpush key value1 value2 ...
127.0.0.1:6379> rpush eunuch zhaogao weizhongxian liujing
(integer) 3
在指定元素的前或后插⼊新元素
linsert key before或after 现有元素 新元素
127.0.0.1:6379> linsert year before ma zu
(integer) 5
获取值
lrange key start stop
127.0.0.1:6379> lrange year 0 -1
1) "tu"
2) "zu"
3) "ma"
4) "hou"
5) "long"
设置指定索引位置的元素值
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素
lset key index value
127.0.0.1:6379> lset year 0 yu
OK
删除
删除指定元素
将列表中前count次出现的值为value的元素移除
count > 0: 从头往尾移除
count < 0: 从尾往头移除
count = 0: 移除所有
lrem key count value
127.0.0.1:6379> lpush slogan one two one two one two
(integer) 6
127.0.0.1:6379> lrem slogan 2 one
(integer) 2
127.0.0.1:6379> lrange slogan 0 -1
1) "two"
2) "two"
3) "two"
4) "one"
set类型
⽆序集合
元素为string类型
元素具有唯⼀性,不重复
说明:对于集合没有修改操作
增加
添加元素
sadd key member1 member2 ...
127.0.0.1:6379> sadd num1 2 4 3 8 4 46 45
(integer) 6
获取
返回所有的元素
smembers key
127.0.0.1:6379> sadd num1 2 4 3 8 4 46 45
(integer) 6
127.0.0.1:6379> smembers num1
1) "2"
2) "3"
3) "4"
4) "8"
5) "45"
6) "46"
删除
删除指定元素
srem key val
127.0.0.1:6379> srem num1 8
(integer) 1
127.0.0.1:6379> smembers num1
1) "2"
2) "3"
3) "4"
4) "45"
5) "46"
zset类型
sorted set,有序集合
元素为string类型
元素具有唯⼀性,不重复
每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
说明:没有修改操作
增加
zadd key score1 member1 score2 member2 ...
127.0.0.1:6379> zadd source 4 li 2 qian 1 zhao 3 sun
(integer) 4
获取
返回指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
zrange key start stop
127.0.0.1:6379> zrange source 0 -1
1) "zhao"
2) "qian"
3) "sun"
4) "li"
返回score值在min和max之间的成员
zrangebyscore key min max
127.0.0.1:6379> zrangebyscore source 2 3
1) "qian"
2) "sun"
返回成员member的score值
zscore key member
127.0.0.1:6379> ZSCORE source li
"4"
删除
删除指定元素
zrem key member1 member2 ...
删除权重在指定范围的元素
zremrangebyscore key min max