Redis的命令行操作

  • 1.String类型
  • 2.Hash类型
  • 3.List类型
  • 4.Set类型
  • 5.SortedSet类型
  • 6.键的生存时间
  • 7.发布与订阅
  • 8.清除数据

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

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

首先启动redis并进入客户端

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

启动服务进入redis客户端

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

1.String类型

基本命令及String类型,格式

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

注:12的命令要求value的值可以进行加减运算

2.Hash类型

Hash类型的key为字符串,value为key1:value1。
格式>,关键字h

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

3.List类型

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

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

4.Set类型

Set数据类型不重复,无序,最多可以有2321232−1个元素。
格式>,关键字s

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

5.SortedSet类型

SortedSet是在Set的基础上增加一个分值并根据这个分值进行排序,它比List更耗内存
①可以改变元素的分值以便于调整元素位置
②使用散列表读取中间数据速度快
③若元素的分值一样则按照ASCII的顺序排列
格式>

序号 命令 描述 实例
42 zadd 创建key,value(score1:value1,score2:value2,…) zadd zset1 1 a 2 b
43 zscore 查看key中某个元素的分值 zscore zset1 a
44 zrange 按下标区间查看key zrange zset1 0 10
45 zrevrange 倒序查看key中元素 zrevrange zset1 0 -1
46 zincrby key中某个元素的分值增加,负数时为减少 zincrby zset1 1 a
47 zcount 返回key中分值区间的元素的个数 zcount zet1 0 4
48 zcard 返回key中元素个数 zcard zset1
49 zrem 删除key中的某个元素 zrem zset1 a
50 zrangebyscore 返回key中分值包含左右区间的元素 zrangebyscore zset1 0 4
zrangebyscore (不包含区间 zrangebyscore zset1 0 (4
51 zadd +inf增加元素分值正无穷 zadd zset1 +inf n
zadd -inf增加元素分值负无穷 zadd zset1 –inf m
52 zrangebylex3 显示元素名称包含左右区间的元素 zrangebylex zset1 [a [wangww
53 zrank 显示key中某个元素的下标 zrank zset1 a

注:redis是按照key来存储数据的,它没有提供按条件查询,但可以使用zrangebyscore和zrangebylex来实现条件查询。

6.键的生存时间

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

7.发布与订阅

序号 命令 描述 实例
58 publish publish channel message,将信息message发送到指定的频道channel publish ch1 ‘a’
59 subscribe 订阅给定的一个或多个频道的信息 subscribe ch1
unsubscribe 取消订阅给定的频道 unsubscribe ch1
60 psubscribe 订阅一个或多个符合给定模式的频道 psubscribe ch1 ch2
punsubscribe 指示客户端退订所有给定模式 punsubscribe ch1 ch2

测试:开两个控制台,先在一个控制台执行订阅subscribe ch1
Redis的命令行操作_第1张图片
另一个控制台在频道上发布内容publish ch1 'hello there'
publish发布
此时可以看到订阅的控制台上多出了消息的气泡提醒
publish和subscribe气泡提醒
切换后显示了频道的发布内容
Redis的命令行操作_第2张图片

批量订阅: psubscribe ch1 ch2
多个频道发布内容
publish ch1 'hello world'
publish ch2 'hello world2'
批量发布
订阅的多频道内容查看
Redis的命令行操作_第3张图片

8.清除数据

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

本文参考:
http://blog.csdn.net/ty4315/article/details/52050721


  1. 将一个或多个值value插入到列表key的表头。如果有多个value值,那么各个value值按从左到右的顺序依次插入到表头:比如说,对空列表mylist执行命令LPUSH mylist a b c ,列表的值将是c b a,这等同于原子性地执行LPUSH mylist a、LPUSH mylist b和LPUSH mylist c三个命令。 ↩
  2. 让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除;下标如果都超出实际范围则key被删除 ↩
  3. 若key中的分值都一样则使用此命令可按照元素名称的顺序显示;此命令需2.8.9版本以上 ↩

你可能感兴趣的:(Redis)