Redis的五种常用的数据类型及其常见的命令

一、字符串(string)类型

1、SET  key value 设置指定key的值

2、GET key 获取指定key的值

127.0.0.1:6379> set name redis
OK
127.0.0.1:6379> get name
"redis"

3、SETEX key seconds value 将值value关联到key,并将key的过期时间设为seconds(以秒为单位)

127.0.0.1:6379> setex name 60 redis
OK
127.0.0.1:6379> ttl name(查询以name为key的存活时间)
(integer) 55
127.0.0.1:6379> get name
"redis"
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> get name
(nil)

4、SETNX key value 只有在key不存在时设置key的值

127.0.0.1:6379> exists job                # job 不存在
(integer) 0
127.0.0.1:6379> setnx job "programmer"    # job 设置成功
(integer) 1
127.0.0.1:6379> setnx job "code-farmer"   # 尝试覆盖 job ,失败
(integer) 0
127.0.0.1:6379> GET job                   # 没有被覆盖
"programmer"

二、哈希(hash)类型

1、HSET key field value 将哈希表Key中的字段field的值设为value

2、HGET key field 获取存储在哈希表中指定字段的值

3、HDEL key field 删除存储在哈希表中的指定字段

4、KEYS key 获取哈希表中所有字段

5、HVALS key 获取哈希表中的所有值

6、HGETALL key 获取在哈希表指定key的所有字段和值

127.0.0.1:6379> hset myhash1 name xiaoming
(integer) 1
127.0.0.1:6379> hset myhash1 age 20
(integer) 1
127.0.0.1:6379> hset myhash1 sex man
(integer) 1
127.0.0.1:6379> hkeys myhash1
1) "age"
2) "sex"
3) "name"
127.0.0.1:6379> hvals myhash1
1) "20"
2) "man"
3) "xiaoming"
127.0.0.1:6379> hgetall myhash1
1) "age"
2) "20"
3) "sex"
4) "man"
5) "name"
6) "xiaoming"

三、列表(list)类型

1、LPUSH key value1 [value2] (将一个或多个值插入到列表头部)

2、LRANGE key start stop 获取列表从start到stop范围内的元素

3、RPOP key 移除并获取列表最后一个元素

4、LLEN key 获取列表长度

5、BRPOP key1 [key2] timeout 移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

127.0.0.1:6379> lpush list1 foo bar
(integer) 2
127.0.0.1:6379> lrange list1 0 -1    #end为-1代表返回所有元素
1) "bar"
2) "foo"
127.0.0.1:6379> llen list1
(integer) 2
127.0.0.1:6379> rpop list1
"foo"
127.0.0.1:6379> llen list1
(integer) 1
127.0.0.1:6379> rpop list1
"bar"
127.0.0.1:6379> brpop list1 100
(nil)
(100.06s)
127.0.0.1:6379> lpush list1 abc
(integer) 1
127.0.0.1:6379> brpop list1 100
1) "list1"
2) "abc"    #假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。

四、集合(set)类型(集合包括不可重复元素)

1、SADD key member1 [member2] 向集合中添加一个或多个成员

2、SMEMBERS key 返回集合中的所有成员

3、SARD key 获取集合的成员数

127.0.0.1:6379> sadd myset hello foo
(integer) 2
127.0.0.1:6379> smembers myset
1) "foo"
2) "hello"
127.0.0.1:6379> sadd myset hello
(integer) 0    #myset集合中已有hello元素,添加失败
127.0.0.1:6379> scard myset
(integer) 2

4、SINTER key1 [key2] 返回给定所有集合的交集

5、SDIFF key1 [key2] 返回给定所有集合的差集

127.0.0.1:6379> sadd myset hello foo bar rich
(integer) 4
127.0.0.1:6379> sadd myset2 hello rich lar chat
(integer) 4
127.0.0.1:6379> sinter myset myset2
1) "rich"
2) "hello"
127.0.0.1:6379> sdiff myset myset2
1) "foo"
2) "bar"
127.0.0.1:6379> sdiff myset2 myset    #key值的顺序先后有差别
1) "lar"
2) "chat"

6、SREM key member1 [member2] 移除集合中一个或多个成员

127.0.0.1:6379> sadd myset hello rich bar chat
(integer) 4
127.0.0.1:6379> srem myset hello bar
(integer) 2
127.0.0.1:6379> scard myset
(integer) 2

五、有序集合(sorted set)类型

1、ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数

2、ZRANGE key start stop [WITHSCORES] 通过索引区返回有序集合中指定区间内的成员

127.0.0.1:6379> zadd myzset 1 hello
(integer) 1
127.0.0.1:6379> zadd myzset 1 foo
(integer) 1
127.0.0.1:6379> zadd myzset 2 world 3 bar
(integer) 2
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "foo"
2) "1"
3) "hello"
4) "1"
5) "world"
6) "2"
7) "bar"
8) "3"

3、ZINCRBY key increment member 有序集合中对指定成员的分数加上增量increment

4、ZREM key member [member ...] 移除有序集合中的一个或多个成员

127.0.0.1:6379> ZADD myzset 1 "hello"
(integer) 1
127.0.0.1:6379> ZADD myzset 1 "foo"
(integer) 1
127.0.0.1:6379> ZINCRBY myzset 2 "hello"
(integer) 3
127.0.0.1:6379> ZRANGE myzset 0 -1 WITHSCORES
1) "foo"
2) "2"
3) "hello"
4) "3"
127.0.0.1:6379> ZREM myzset "foo"
(integer) 1
127.0.0.1:6379> ZRANGE myzset 0 -1 WITHSCORES
1) "hello"
2) "3"

想了解更多相关命令可以跳转到Redis中文网

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值