- 1.String类型
- 1.设置/获取 value
- 2.在 key 不存在时设置 key 的值
- 3.返回 key 中字符串值的子字符
- 4. 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
- 5.批量设置/读取多个key-value
- 6.指定的key的值自增/自减1
- 7. key 所储存的值减去给定的加/减量值
- 8.字符串追加
- 9.返回 key 所储存的字符串值的长度
- 2.LIst类型
- 1.列表头部插入一个值
- 2.将一个值插入到已存在的列表头部
- 3.将一个或多个值插入到列表头部或尾部
- 4.通过区间 获取列表的值
- 5. 通过索引获取列表中的元素
- 6.列表头/尾(左/右)删除一个值
- 7. 获取列表长度
- 8.移除指定元素
- 9.通过下标截取指定元素
- 10.将具体的value插入到某个元素的后面或者前面
- 11.移除列表的最后一个元素,放到新的列表中
- 3.set集合类型
- 1.向集合添加一个或多个成员
- 2.获取集合的成员数
- 3.返回集合中的所有成员
- 4.返回给定所有集合的交集
- 5.返回所有给定集合的并集
- 6.返回第一个集合与其他集合之间的差异
- 7.判断 member 元素是否是集合 key 的成员
- 8.移除集合中一个或多个成员
- 9.移除并返回集合中的一个随机元素
- 10移动元素
- 4.Hash(哈希)类型
- 1.设置一个或者多个值
- 2.获取在哈希表中指定 key 的所有字段和值
- 3.获取存储在哈希表中指定字段的值
- 4.查看哈希表 key 中,指定的字段是否存在
- 5.获取哈希表中字段的数量
- 6.获取哈希表中所有值
- 7.为哈希表 key 中的指定字段的整数值加上增量 increment
- 8.删除一个或多个哈希表字段
- 5.Zset(有序集合)
- 1.向有序集合添加一个或多个成员,或者更新已存在成员的分数
- 2.获取有序集合的成员数
- 3.计算在有序集合中指定区间分数的成员数
- 4.返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
- 5.通过分数返回有序集合指定区间内的成员
注意:Redis命令不严格区分大小写
1.设置/获取 value- 1 命令:SET,GET
举例:
redis 127.0.0.1:6379> SET name zhangsan OK redis 127.0.0.1:6379> GET name "张三"2.在 key 不存在时设置 key 的值
- 命令:SETNX key value
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) 03.返回 key 中字符串值的子字符
- 命令:GETRANGE key start end
127.0.0.1:6379> GETRANGE name 1 3 "han"4. 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
- 命令:GETSET key 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
- 命令:mset ,mget
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) 107. 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.字符串追加
- 命令:APPEND key value
127.0.0.1:6379> append name hello (integer) 9 127.0.0.1:6379> get name "lisihello"9.返回 key 所储存的字符串值的长度
- 命令:STRLEN key
127.0.0.1:6379> strlen name (integer) 92.LIst类型
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
- 1.命令:lpush list value
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) 32.将一个值插入到已存在的列表头部
- 命令: LPUSHX key value
127.0.0.1:6379> lpushx list2 one (integer) 0 127.0.0.1:6379> lpushx mylist one (integer) 53.将一个或多个值插入到列表头部或尾部
- 命令: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. 通过索引获取列表中的元素
- 命令:LINDEX key index
127.0.0.1:6379> lindex list 3 "three" 127.0.0.1:6379> lindex list 5 "one"6.列表头/尾(左/右)删除一个值
- 命令:lpop rpop key
127.0.0.1:6379> lpop list "six" 127.0.0.1:6379> rpop list "sevrn"7. 获取列表长度
- 命令:llen key
127.0.0.1:6379> llen list (integer) 58.移除指定元素
- 命令:lrem key count value
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.通过下标截取指定元素
- 命令:ltrim key start stop
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插入到某个元素的后面或者前面
- 命令:linsert key 值
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.移除列表的最后一个元素,放到新的列表中
- 命令:rpoplpush
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多亿个成员)。
- 命令:SADD key member1 [member2]
举例:
127.0.0.1:6379> sadd set one two three (integer) 32.获取集合的成员数
- 命令: SCARD key
127.0.0.1:6379> scard set (integer) 33.返回集合中的所有成员
- 命令:SMEMBERS key
127.0.0.1:6379> smembers set 1) "one" 2) "three" 3) "two"4.返回给定所有集合的交集
- 命令:SINTER key1 [key2]
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.返回所有给定集合的并集
- 命令: SUNIOn key1 [key2]
127.0.0.1:6379> sunion set set2 1) "one" 2) "two" 3) "three" 4) "four"6.返回第一个集合与其他集合之间的差异
- 命令:SDIFF key1 [key2]
127.0.0.1:6379> sdiff set set2 1) "three"7.判断 member 元素是否是集合 key 的成员
- 命令:SISMEMBER key member
127.0.0.1:6379> sismember set five (integer) 0 127.0.0.1:6379> sismember set one (integer) 18.移除集合中一个或多个成员
- 命令: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.移除并返回集合中的一个随机元素
- 命令:SPOP key
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没有太大区别
- 命令:hmset hash名 key -value key -value …
127.0.0.1:6379> hmset hash name tang age 21 sex man OK2.获取在哈希表中指定 key 的所有字段和值
- 命令:HGETALL key
127.0.0.1:6379> hgetall hash 1) "name" 2) "tang" 3) "age" 4) "21" 5) "sex" 6) "man"3.获取存储在哈希表中指定字段的值
- 命令:HGET key field
127.0.0.1:6379> hget hash name "tang"4.查看哈希表 key 中,指定的字段是否存在
- 命令:HEXISTS key field
127.0.0.1:6379> hexists hash name (integer) 1 127.0.0.1:6379> hexists hash id (integer) 05.获取哈希表中字段的数量
- 命令:HLEN key
127.0.0.1:6379> hlen hash (integer) 36.获取哈希表中所有值
+ 命令: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) 238.删除一个或多个哈希表字段
- 命令: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多亿个成员)。
- 命令: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) 22.获取有序集合的成员数
- 命令: ZCARD key
127.0.0.1:6379> zcard zset (integer) 53.计算在有序集合中指定区间分数的成员数
- 命令:ZCOUNT key min max
127.0.0.1:6379> zcount zset 2 4 (integer) 34.返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
- 命令:ZREVRANK key member
127.0.0.1:6379> zrevrank zset two (integer) 35.通过分数返回有序集合指定区间内的成员
- 命令: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"
更多更详细的用法可以去菜鸟教程学习
网址直达



