Redis Shell命令行操作五种value数据类型
2016-12-13 17:33
267 查看
基本命令及String类型
Hash类型
List类型
Set类型
SortedSet类型
键的生存时间
发布与订阅
清除数据
Redis Shell命令行操作五种value数据类型
Redis使用键值存储数据,key必须是字符串,value支持五种数据类型,最新版本又新增加了两种这里暂不介绍。下面介绍redis的一些基本命令的使用。
首先启动redis并进入客户端
Redis中的命令不区分大小写。
注:12的命令要求value的值可以进行加减运算
格式
格式
格式
①可以改变元素的分值以便于调整元素位置
②使用散列表读取中间数据速度快
③若元素的分值一样则按照ASCII的顺序排列
格式
注:redis是按照key来存储数据的,它没有提供按条件查询,但可以使用zrangebyscore和zrangebylex来实现条件查询。
测试:开两个控制台,先在一个控制台执行订阅
另一个控制台在频道上发布内容
此时可以看到订阅的控制台上多出了消息的气泡提醒
切换后显示了频道的发布内容
批量订阅:
多个频道发布内容
订阅的多频道内容查看
本文参考:
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版本以上 ↩
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>
序号 | 命令 | 描述 | 实例 |
---|---|---|---|
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 |
2. Hash类型
Hash类型的key为字符串,value为key1:value1。格式
<key:<key1:value1,key2:value2,...>>,关键字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实现,访问两边数据快中间慢,最多可以有232−1个元素。格式
<key,<value1,value2,…>>,关键字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数据类型不重复,无序,最多可以有232−1个元素。格式
<key,<value1,value2,…>>,关键字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的顺序排列
格式
<key,<score1:value1,score2:value2,…>>
序号 | 命令 | 描述 | 实例 |
---|---|---|---|
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 |
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
另一个控制台在频道上发布内容
publish ch1 'hello there'
此时可以看到订阅的控制台上多出了消息的气泡提醒
切换后显示了频道的发布内容
批量订阅:
psubscribe ch1 ch2
多个频道发布内容
publish ch1 'hello world'
publish ch2 'hello world2'
订阅的多频道内容查看
8.清除数据
序号 | 命令 | 描述 | 实例 |
---|---|---|---|
61 | flushdb | 清除当前数据库的所有数据 | flushdb |
62 | flushall | 清除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版本以上 ↩
相关文章推荐
- Redis笔记二之Redis命令操作简介及五种value数据类型
- Java的IO操作(二) - 带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令
- mysql数据库中命令行下常用命令的操作(增、删、改、查)和数据类型
- redis中的五种数据类型和基本操作
- Jedis-单独使用demo(包括redis五种数据类型常见操作)
- jedis对五种数据类型的操作
- Java的IO操作(二) - 带缓冲区的流对象、写入基本数据类型、实现命令行中的copy命令
- 数据库的连接、索引和Redis的五种数据类型及其操作命令、使用场景
- redis命令及操作记录以及redis的五种数据类型介绍
- mysql数据库中命令行下常用命令的操作(增、删、改、查)和数据类型
- mysql数据库中命令行下常用命令的操作(增、删、改、查)和数据类型
- JS_对各类型数据的操作方式_ByValue/ByReference
- 通过Jedis操作Redis的五种数据类型
- mysql数据库中命令行下常用命令的操作(增、删、改、查)和数据类型
- 【转载】mysql数据库中命令行下常用命令的操作(增、删、改、查)和数据类型
- mysql数据库中命令行下常用命令的操作(增、删、改、查)和数据类型
- mysql数据库中命令行下常用命令的操作(增、删、改、查)和数据类型
- Redis五种数据类型操作命令
- Redis中五种数据类型简单操作
- redis中的五种数据类型及其常用操作