Redis常用操作
Redis的值的类型分为五种
- 字符串 String
- 哈希 hash
- 列表 list
- 集合 set
- 有序集合 zset
String
字符串类型是redis中最为常见的数据类型,它在redis中是二进制安全的,这便意味着该类型可以接受任何数据格式的数据,如jpeg图像数据或json数据对象描述信息等.在redis中字符串类型的value最多可以容纳的数据长度是512M
字符串的设置与获取
set key value
get key
注意 : 如果设置的键不存在则为添加,如果设置的键已经存在则为修改
127.0.0.1:6379> set name kevin
OK
127.0.0.1:6379> get name
"kevin"
设置键值以及过期时间,以秒为单位 setex
setex key seconds value
127.0.0.1:6379> setex name 5 kevin
OK
127.0.0.1:6379> get name
"kevin"
127.0.0.1:6379> get name
(nil) # 数据已不存在
设置多个值
mset key1 value1 key2 value2 ...
mget key1 key2 key3
127.0.0.1:6379> mset name kevin age 18 sex man
OK
127.0.0.1:6379> get name
"kevin"
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> mget name age sex
1) "kevin"
2) "18"
3) "man"
对值进行拼接追加 append
append key value
127.0.0.1:6379> set say hello
OK
127.0.0.1:6379> get say
"hello"
127.0.0.1:6379> append say word
(integer) 9
127.0.0.1:6379> get say
"helloword"
键操作
keys * (正则匹配) 获取所有的键
127.0.0.1:6379> keys *
1) "age"
2) "name"
3) "sex"
4) "say"
判断键是否存在 exists
exists key
127.0.0.1:6379> exists name
(integer) 1 # 存在返回1
127.0.0.1:6379> exists no
(integer) 0 # 不存在返回0
查看键的数据类型 type
type key
127.0.0.1:6379> type name
string
127.0.0.1:6379> type age
string
删除键 del
del key1 key2
127.0.0.1:6379> del name
(integer) 1
# 删除不存在的键
127.0.0.1:6379> del name2
(integer) 0
设置键的指定过期时间 expire
expire key
127.0.0.1:6379> expire name 4
(integer) 1
查看键的过期时间 ttl
ttl key
127.0.0.1:6379> expire age 10
(integer) 1
127.0.0.1:6379> ttl age
(integer) 8
127.0.0.1:6379> ttl age
hash
哈希用于存储对象,对象结构为属性,值
值的类型为String
设置单个属性值
hset key field value
127.0.0.1:6379> hset user name kevin
(integer) 1
127.0.0.1:6379> hget user name
"kevin"
设置多个属性值
mset key field1 value1 field2 value2 ...
127.0.0.1:6379> hmset userinfo name kevin age 18
OK
127.0.0.1:6379> hmget userinfo name age
1) "kevin"
2) "18"
获取指定键所有的属性
hkeys key
127.0.0.1:6379> hkeys userinfo
1) "name"
2) "age"
获取指定键所有的值
hvals key
127.0.0.1:6379> hvals userinfo
1) "kevin"
2) "18"
删除
hdel key field1 field2 ...
127.0.0.1:6379> hdel userinfo age
(integer) 1
127.0.0.1:6379> hkeys userinfo
1) "name"
list 类型
- 列表的元素类型为string
- 按照插入顺序排序
增加
左侧插入数据
lpush key value1 value2 ...
127.0.0.1:6379> lpush userinfo Kevin Bob Lisa
(integer) 3
127.0.0.1:6379> lrange userinfo 0 -1
1) "Lisa"
2) "Bob"
3) "Kevin"
右侧插入数据
rpush key value1 value2 ...
127.0.0.1:6379> rpush userinfo Hugo
(integer) 4
127.0.0.1:6379> lrange userinfo 0 -1
1) "Lisa"
2) "Bob"
3) "Kevin"
4) "Hugo"
在指定元素的前或后插⼊新元素
linsert key before或after 现有元素 新元素
127.0.0.1:6379> linsert userinfo before Kevin insert
(integer) 5
127.0.0.1:6379> lrange userinfo 0 -1
1) "Lisa"
2) "Bob"
3) "insert"
4) "Kevin"
5) "Hugo"
127.0.0.1:6379> linsert userinfo after Kevin insert1
(integer) 6
127.0.0.1:6379> lrange userinfo 0 -1
1) "Lisa"
2) "Bob"
3) "insert"
4) "Kevin"
5) "insert1"
6) "Hugo"
获取
返回列表中指定范围内的元素
- start , stop 为元素的下标索引
- 索引左侧开始, 第一个元素为0
- 索引可以是负数,表示从尾部开始计数,如 -1 表示最后一个元素
lrange userinfo 0 -1
设置指定索引位置的元素值
lset key index value
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素
127.0.0.1:6379> lset userinfo 0 Hugo
OK
127.0.0.1:6379> lrange userinfo 0 -1
1) "Hugo"
2) "Bob"
3) "insert"
4) "Kevin"
5) "insert1"
6) "Hugo"
删除
将列表中前count次出现的值为value的元素移除
- count > 0: 从头往尾移除
- count < 0: 从尾往头移除
- count = 0: 移除所有
lrem key count value
127.0.0.1:6379> lrange users 0 -1
1) "Kevin"
2) "Lisa"
3) "Kevin"
4) "Bob"
5) "Kevin"
127.0.0.1:6379> lrem users 1 Kevin
(integer) 1
127.0.0.1:6379> lrange users 0 -1
1) "Lisa"
2) "Kevin"
3) "Bob"
4) "Kevin"
set 类型
- 无序集合
- 元素为String类型
- 元素具有唯一性,不重复
注意 : 对于集合没有修改操作
增加
sadd key member1 member2 ...
127.0.0.1:6379> sadd names zhangsan lisi wangwu
(integer) 3
127.0.0.1:6379> smembers names
1) "lisi"
2) "zhangsan"
3) "wangwu"
删除
srem key
127.0.0.1:6379> srem names lisi
(integer) 1
127.0.0.1:6379> smembers names
1) "zhangsan"
2) "wangwu"
zset 类型
- sorted set 有序集合
- 元素为string类型
- 元素具有唯一性,不重复
- 每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
说明 :没有修改
增加
zadd key score1 member1 score2 member2 ...
127.0.0.1:6379> zadd user 1 Kevin 2 Bob 3 Lisa
(integer) 3
127.0.0.1:6379> zrange user 0 -1
1) "Kevin"
2) "Bob"
3) "Lisa"
获取
- 返回指定范围内的元素
- start、stop为元素的下标索引
- 索引从左侧开始,第⼀个元素为0
- 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
zrange key start stop
zrange user 0 -1
返回index值在min和max之间的成员
127.0.0.1:6379> zrangebyscore user 1 2
1) "Kevin"
2) "Bob"
返回成员member的score值
127.0.0.1:6379> zscore user Bob
"2"
删除
删除指定的元素
zrem key member1 member2 ...
127.0.0.1:6379> zrem user Lisa
(integer) 1
127.0.0.1:6379> zrange user 0 -1
1) "Kevin"
2) "Bob"
删除权重在指定范围的元素
zremrangebyscore key min max
网友评论