您的位置:首页 > 数据库 > Redis

Redis Shell命令行操作五种value数据类型

2016-12-13 17:33 267 查看
基本命令及String类型

Hash类型

List类型

Set类型

SortedSet类型

键的生存时间

发布与订阅

清除数据

Redis Shell命令行操作五种value数据类型

Redis使用键值存储数据,key必须是字符串,value支持五种数据类型,最新版本又新增加了两种这里暂不介绍。下面介绍redis的一些基本命令的使用。

首先启动redis并进入客户端

redis-server /usr/local/redis-3.0.0/redis.conf
redis-cli




Redis中的命令不区分大小写。

1. 基本命令及String类型

格式
<key:value>


序号命令描述实例
1help帮助命令help set
2selectRedis默认有16个库通过select命令切换,库之间隔离,默认登录0号库select 1
3del删除keydel a
4keys查询库中已存在的key
keys *
keys a*
5exists查看当前库中是否存在key,存在返回1exists a
6set创建key,valueset a 1
7get查看key的value值get a
8mset一次创建多个key,valuemset a 1 b 2
9mget一次查看多个key的value值mget a b
10append向key中追加字符串append a x
11strlen返回key的value的长度strlen a
12incrkey的value加1incr b
decrkey的value减1decr b
incrbykey的value按步长加,根据值的正负数incrby b 2
decrbykey的value按步长减,根据值的正负数decrby b 2
incrbyfloatkey的value加减,根据值的正负数incrbyfloat b 0.9
注:12的命令要求value的值可以进行加减运算

2. Hash类型

Hash类型的key为字符串,value为key1:value1。

格式
<key:<key1:value1,key2:value2,...>>
,关键字h

序号命令描述实例
13hset创建key,value(key1,value1)hset user01 name jack
14hget查看键key的value中的key的值hget user01 name
15hmset一次创建key的多个valuehmset user01 name tom age 10
16hmget一次查看多个key的value中的key的值hmget user01 name age
17hexists查看键key的value中key是否存在,存在返回1hexists user01 name
18hdel删除键key的value中的某个keyhdel user01 name
19hincrby键key的value中的某个key按步长增加,也可负数减hincrby user01 age 2
20hkeys显示键key的value中的所有keyhkeys user01
21hvals显示键key的value中的所有valuehvals user01
22hlen显示键key的value中的key的个数hlen user01
23hgetall显示键key的value中所有的键值对hgetall user01
hincrbyfloat键key的value中的某个key加减,根据值的正负数hincrbyfloat user01 age 2
hsetnx键key的value中的key不存在才创建hsetnx user01 gender male

3. List类型

List类型是有序的,采用双向链表LinkedList实现,访问两边数据快中间慢,最多可以有232−1个元素。

格式
<key,<value1,value2,…>>
,关键字l

序号命令描述实例
24lpush1创建key,value(value1,value2,…)lpush list1 a b c
25lrange查看键key全部元素lrange list1 0 -1
26lindex查看键key中下标为0的元素lindex list1 0
27lset更改键key中下标为0的元素值lset list1 0 xx
28llen显示键key的长度,元素个数llen list1
29lpop返回并删除键key中最左边的valuelpop list1
30rpop返回并删除键key中最右边的valuerpop list1
31ltrim2按下标截取键key中的元素ltrim list1 0 4
brpop当给定多个key参数时,按参数key的先后顺序依次检查各个列表,弹出第一个非空列表的尾部元素brpop list1 list2 4

4. Set类型

Set数据类型不重复,无序,最多可以有232−1个元素。

格式
<key,<value1,value2,…>>
,关键字s

序号命令描述实例
32sadd创建key,value(value1,value2,…)sadd set1 a b c d
33smembers查看键keysmembers set1
34sismember查看键key中是否含有某个value,存在返回1sismember set1 a
35srem删除键key中的某个valuesrem set1 a
36spop随机删除键key中的一个元素spop set1
37scard显示键key中的元素个数scard set1
38sdiff显示key1中元素不存在于key2中的元素sdiff set1 set2
39sinter显示key1与key2的交集sinter set1 set2
40sunion显示key1和key2的并集sunion set1 set2
41sinterstore将key1和key2的交集存入key3中sinterstore set3 set1 set2

5. SortedSet类型

SortedSet是在Set的基础上增加一个分值并根据这个分值进行排序,它比List更耗内存

①可以改变元素的分值以便于调整元素位置

②使用散列表读取中间数据速度快

③若元素的分值一样则按照ASCII的顺序排列

格式
<key,<score1:value1,score2:value2,…>>


序号命令描述实例
42zadd创建key,value(score1:value1,score2:value2,…)zadd zset1 1 a 2 b
43zscore查看key中某个元素的分值zscore zset1 a
44zrange按下标区间查看keyzrange zset1 0 10
45zrevrange倒序查看key中元素zrevrange zset1 0 -1
46zincrbykey中某个元素的分值增加,负数时为减少zincrby zset1 1 a
47zcount返回key中分值区间的元素的个数zcount zet1 0 4
48zcard返回key中元素个数zcard zset1
49zrem删除key中的某个元素zrem zset1 a
50zrangebyscore返回key中分值包含左右区间的元素zrangebyscore zset1 0 4
zrangebyscore
(
不包含区间
zrangebyscore zset1 0 (4
51zadd
+inf
增加元素分值正无穷
zadd zset1 +inf n
zadd
-inf
增加元素分值负无穷
zadd zset1 –inf m
52zrangebylex3显示元素名称包含左右区间的元素zrangebylex zset1 [a [wangww
53zrank显示key中某个元素的下标zrank zset1 a
注:redis是按照key来存储数据的,它没有提供按条件查询,但可以使用zrangebyscore和zrangebylex来实现条件查询。

6. 键的生存时间

序号命令描述实例
54expireexpire可以设置一个key的有效时间,生存时间单位是秒。expire name 10
55ttlttl是查看key还剩下多少有效时间,默认是永久有效返回-1,当超过有效时间后返回-2。ttl name
56persistpersist命令可以取消一个key的剩余时间使之成为永久有效persist name
57expireatexpireat可以指定一个key在什么时间失效expireat name 1471849200

7.发布与订阅

序号命令描述实例
58publishpublish channel message,将信息message发送到指定的频道channelpublish ch1 ‘a’
59subscribe订阅给定的一个或多个频道的信息subscribe ch1
unsubscribe取消订阅给定的频道unsubscribe ch1
60psubscribe订阅一个或多个符合给定模式的频道psubscribe ch1 ch2
punsubscribe指示客户端退订所有给定模式punsubscribe ch1 ch2
测试:开两个控制台,先在一个控制台执行订阅
subscribe ch1




另一个控制台在频道上发布内容
publish ch1 'hello there'




此时可以看到订阅的控制台上多出了消息的气泡提醒



切换后显示了频道的发布内容



批量订阅:
psubscribe ch1 ch2


多个频道发布内容

publish ch1 'hello world'


publish ch2 'hello world2'




订阅的多频道内容查看



8.清除数据

序号命令描述实例
61flushdb清除当前数据库的所有数据flushdb
62flushall清除redis实例的所有数据flushall
本文参考:

http://blog.csdn.net/ty4315/article/details/52050721
将一个或多个值value插入到列表key的表头。如果有多个value值,那么各个value值按从左到右的顺序依次插入到表头:比如说,对空列表mylist执行命令LPUSH mylist a b c ,列表的值将是c b a,这等同于原子性地执行LPUSH mylist a、LPUSH mylist b和LPUSH mylist c三个命令。
让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除;下标如果都超出实际范围则key被删除
若key中的分值都一样则使用此命令可按照元素名称的顺序显示;此命令需2.8.9版本以上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐