Reids五种数据类型命令

文章目录

1.String类型

注意: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) 0

3.返回 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) 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.字符串追加

  • 命令: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) 9

2.LIst类型

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

1.列表头部插入一个值

  • 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) 3

2.将一个值插入到已存在的列表头部

  • 命令: LPUSHX key value
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. 通过索引获取列表中的元素

  • 命令: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) 5

8.移除指定元素

  • 命令: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多亿个成员)。

1.向集合添加一个或多个成员

  • 命令:SADD key member1 [member2]
    举例:
127.0.0.1:6379> sadd set one two three
(integer) 3

2.获取集合的成员数

  • 命令: SCARD key
127.0.0.1:6379> scard set
(integer) 3

3.返回集合中的所有成员

  • 命令: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) 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.移除并返回集合中的一个随机元素

  • 命令: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没有太大区别

1.设置一个或者多个值

  • 命令:hmset hash名 key -value key -value …
127.0.0.1:6379> hmset hash name tang age 21 sex man
OK

2.获取在哈希表中指定 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) 0

5.获取哈希表中字段的数量

  • 命令:HLEN key
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.获取有序集合的成员数

  • 命令: ZCARD key
127.0.0.1:6379> zcard zset
(integer) 5

3.计算在有序集合中指定区间分数的成员数

  • 命令:ZCOUNT key min max
127.0.0.1:6379> zcount zset 2 4
(integer) 3

4.返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

  • 命令:ZREVRANK key member
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"

更多更详细的用法可以去菜鸟教程学习
网址直达

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值