1.String类型
注意:Redis命令不严格区分大小写
1.设置/获取 value
举例:
redis 127.0.0.1:6379> SET name zhangsan
OK
redis 127.0.0.1:6379> GET name
"张三"
2.在 key 不存在时设置 key 的值
127.0.0.1:6379> setnx name4 kk //不存在name4
(integer) 1
127.0.0.1:6379> get name4
"kk"
127.0.0.1:6379> setnx name ss //存在name
(integer) 0
3.返回 key 中字符串值的子字符
- 命令:GETRANGE key start end
127.0.0.1:6379> GETRANGE name 1 3
"han"
4. 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
127.0.0.1:6379> getset name lisi
"zhangsan"
127.0.0.1:6379> get name
"lisi"
127.0.0.1:6379>
5.批量设置/读取多个key-value
127.0.0.1:6379> mset name2 xiaoming name3 wangwu
OK
127.0.0.1:6379> mset name2 xiaoming name3 wangwu
OK
127.0.0.1:6379> mget name name2 name3
1) "lisi"
2) "xiaoming"
3) "wangwu"
6.指定的key的值自增/自减1
命令:INCR key,DECR key
127.0.0.1:6379> set age 10
OK
127.0.0.1:6379> incr age //加一
(integer) 11
127.0.0.1:6379> decr age //减一
(integer) 10
7. key 所储存的值减去给定的加/减量值
- INCRBY key increment ,DECRBY key decrement
127.0.0.1:6379> incrby age 10 //加10
(integer) 15
127.0.0.1:6379> decrby age 3 //减3
(integer) 12
127.0.0.1:6379> get age
"12"
8.字符串追加
127.0.0.1:6379> append name hello
(integer) 9
127.0.0.1:6379> get name
"lisihello"
9.返回 key 所储存的字符串值的长度
127.0.0.1:6379> strlen name
(integer) 9
2.LIst类型
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
1.列表头部插入一个值
127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
2.将一个值插入到已存在的列表头部
127.0.0.1:6379> lpushx list2 one
(integer) 0
127.0.0.1:6379> lpushx mylist one
(integer) 5
3.将一个或多个值插入到列表头部或尾部
- 命令:lpush key value1 [value2]
- 命令:rpush key value1 [value2]
127.0.0.1:6379> lpush list four five six
(integer) 6
127.0.0.1:6379> lrange list 0 -1
1) "six"
2) "five"
3) "four"
4) "three"
5) "two"
6) "one"
4.通过区间 获取列表的值
- 命令:lrange list start stop
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
5. 通过索引获取列表中的元素
127.0.0.1:6379> lindex list 3
"three"
127.0.0.1:6379> lindex list 5
"one"
6.列表头/尾(左/右)删除一个值
127.0.0.1:6379> lpop list
"six"
127.0.0.1:6379> rpop list
"sevrn"
7. 获取列表长度
127.0.0.1:6379> llen list
(integer) 5
8.移除指定元素
127.0.0.1:6379> lrem list 1 one
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "five"
2) "four"
3) "three"
4) "two"
9.通过下标截取指定元素
127.0.0.1:6379> ltrim list 0 3
OK
127.0.0.1:6379> lrange list 0 -1
1) "five"
2) "four"
3) "three"
4) "two"
10.将具体的value插入到某个元素的后面或者前面
127.0.0.1:6379> rpush mylist hello
(integer) 1
127.0.0.1:6379> rpush mylist world
(integer) 2
127.0.0.1:6379> linsert mylist before world other
(integer) 3
127.0.0.1:6379> linsert mylist after world why
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "other"
3) "world"
4) "why"
11.移除列表的最后一个元素,放到新的列表中
127.0.0.1:6379> flushdb //清空数据库
OK
127.0.0.1:6379> lpush list one two three four //加入四个元素
(integer) 4
127.0.0.1:6379> rpoplpush list list2 //移动一个
"one"
127.0.0.1:6379> lrange list2 0 -1 //查看
1) "one"
3.set集合类型
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 集合对象的编码可以是 intset 或者 hashtable。 Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
1.向集合添加一个或多个成员
- 命令:SADD key member1 [member2]
举例:
127.0.0.1:6379> sadd set one two three
(integer) 3
2.获取集合的成员数
127.0.0.1:6379> scard set
(integer) 3
3.返回集合中的所有成员
127.0.0.1:6379> smembers set
1) "one"
2) "three"
3) "two"
4.返回给定所有集合的交集
127.0.0.1:6379> sadd set2 one two four
(integer) 3
127.0.0.1:6379> sinter set set2
1) "one"
2) "two"
5.返回所有给定集合的并集
127.0.0.1:6379> sunion set set2
1) "one"
2) "two"
3) "three"
4) "four"
6.返回第一个集合与其他集合之间的差异
127.0.0.1:6379> sdiff set set2
1) "three"
7.判断 member 元素是否是集合 key 的成员
127.0.0.1:6379> sismember set five
(integer) 0
127.0.0.1:6379> sismember set one
(integer) 1
8.移除集合中一个或多个成员
- 命令:SREM key member1 [member2]
127.0.0.1:6379> srem set one two
(integer) 2
127.0.0.1:6379> smembers set
1) "three"
9.移除并返回集合中的一个随机元素
127.0.0.1:6379> sadd set hello world
(integer) 2
127.0.0.1:6379> spop set
"world"
127.0.0.1:6379> smembers set
1) "hello"
2) "three"
10移动元素
- 命令:SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合
127.0.0.1:6379> smove set set2 hello
(integer) 1
127.0.0.1:6379> smembers set2
1) "hello"
2) "one"
3) "two"
4.Hash(哈希)类型
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 Map 集合,key-map!值是一个map集合,本质和String没有太大区别
1.设置一个或者多个值
- 命令:hmset hash名 key -value key -value …
127.0.0.1:6379> hmset hash name tang age 21 sex man
OK
2.获取在哈希表中指定 key 的所有字段和值
127.0.0.1:6379> hgetall hash
1) "name"
2) "tang"
3) "age"
4) "21"
5) "sex"
6) "man"
3.获取存储在哈希表中指定字段的值
127.0.0.1:6379> hget hash name
"tang"
4.查看哈希表 key 中,指定的字段是否存在
127.0.0.1:6379> hexists hash name
(integer) 1
127.0.0.1:6379> hexists hash id
(integer) 0
5.获取哈希表中字段的数量
127.0.0.1:6379> hlen hash
(integer) 3
6.获取哈希表中所有值
+ 命令:HVALS key
127.0.0.1:6379> hvals hash
1) "tang"
2) "21"
3) "man"
7.为哈希表 key 中的指定字段的整数值加上增量 increment
- 命令:HINCRBY key field increment
127.0.0.1:6379> hincrby hash age 2
(integer) 23
8.删除一个或多个哈希表字段
- 命令:HDEL key field1 [field2]
127.0.0.1:6379> hdel hash name age
(integer) 2
127.0.0.1:6379> hvals hash
1) "man"
5.Zset(有序集合)
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
1.向有序集合添加一个或多个成员,或者更新已存在成员的分数
- 命令:ZADD key score1 member1 [score2 member2]
127.0.0.1:6379> zadd zset 1 one
(integer) 1
127.0.0.1:6379> zadd zset 2 two
(integer) 1
127.0.0.1:6379> zadd zset 3 three
(integer) 1
127.0.0.1:6379> zadd zset 4 four 5 five
(integer) 2
2.获取有序集合的成员数
127.0.0.1:6379> zcard zset
(integer) 5
3.计算在有序集合中指定区间分数的成员数
127.0.0.1:6379> zcount zset 2 4
(integer) 3
4.返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
127.0.0.1:6379> zrevrank zset two
(integer) 3
5.通过分数返回有序集合指定区间内的成员
- 命令:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
127.0.0.1:6379> zrangebyscore zset 1 7
1) "one"
2) "two"
3) "three"
4) "four"
5) "five"
更多更详细的用法可以去菜鸟教程学习 网址直达
|