Redis数据类型(String、List、Hash、Set、Sorted Set)

String 数据类型

String是redis 最基本的类型,最大能存储512MB 的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等

append——用于为指定的 key 追加值

如果key已经存在并且一个字符串, append命令将value 追加到 key 原来的值的末尾
如果 key 不存在,append 就简单地将给定key 设为 value,就像set key value 一样

set/get/append/strlen/

在这里插入图片描述

incr/decr/incrby/decrby

在这里插入图片描述

getset

在这里插入图片描述

setex

在这里插入图片描述

setnx

指定的key 不存在时,为key设置指定的值
在这里插入图片描述

小结

1、 set key value
含义: 将字符串值 value 关联到 key。
如果key 已经持有其他值,set 就会覆盖旧值,无视类型

2、setex key seconds value
含义: 将值value 关联到 key ,并将 key 的生存时间设为 seconds(以秒为单位)
如果 key 已经存在,setex 命令将覆盖旧值

返回值:设置成功时返回 OK
当seconds 参数不合法时,返回一个错误

3、setnx key value
含义:将key 的值设为 value ,当且仅当 key 不存在
若给定的 key 已经存在,则 setnx 不做任何动作
setnx 是 [ set if not exists ],(如果不存在,则set)的缩写

返回值:设置成功,返回1

mset/mget/msetnx

在这里插入图片描述

List 数据类型

概述:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素

lpush/lpushx/lrange

在这里插入图片描述

lpop/llen

在这里插入图片描述

lrem/lset/lindex/ltrim

在这里插入图片描述
在这里插入图片描述

linsert

在这里插入图片描述

rpush/rpushx/rpop/rpoplpush

在这里插入图片描述

Hash 数据类型(散列类型)

概述:hash用于存储对象。可以采用这样的命名方式:对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值

hset/hget/hdel/hexists/hlen/hsetnx

在这里插入图片描述

hincrby

在这里插入图片描述

hgetall/hkeys/hvals/hmget/hmset

在这里插入图片描述

set 数据类型(无序集合)

概述:无序集合,元素类型为string 类型,元素具有唯一性,不允许存在重复的成员。

sadd/smembers/scard/sismember

sadd key member [member ...]
将一个或多个member 元素加入到集合key当中,已经存在于集合的member元素将被忽略(集合中的元素各不相同

smembers key
返回集合中的所有成员

scard key_name
返回集合的数量。当集合key不存在时返回0

sismember key value
如果成员元素是集合的成员,返回1,如果成员元素不是集合的成员,或 key 不存在,返回0
127.0.0.1:6379> sadd myset a b c
(integer) 3
127.0.0.1:6379> sadd myset a d e
(integer) 2
127.0.0.1:6379> sismember myset a
(integer) 1
127.0.0.1:6379> sismember myset f
(integer) 0
127.0.0.1:6379> smembers myset
1) "d"
2) "e"
3) "b"
4) "c"
5) "a"
127.0.0.1:6379> scard myset
(integer) 5
127.0.0.1:6379> 

在这里插入图片描述

spop/srem/srandmember/smove

spop key [count]

移除集合中的指定key 的一个或多个随机元素,移除后会返回移除的元素

srem key member1..membern

Redis Srem 命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
当key不是一个集合类型,返回一个错误

srandmember key [count]

返回集合中的一个随机元素
小知识
从Redis 2.6版本开始,srandmember 命令接收可选的 count 参数:如果count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。则仅仅返回随机元素,而不对集合进行任何改动

smove

将指定成员 member 元素从 source 集合移动到 destination 集合
smove 是原子性操作
如果 source 集合不存在或不包含指定的member元素,则smove 命令不执行任何操作,仅返回0,否则,member元素从source 集合中被移除,并添加到 destination 集合中去
当destination 集合已经包含member 元素时,smove 命令只是简单地将 source 集合中的 member 元素删除
当source 或 destination 不是集合类型时,返回一个错误

127.0.0.1:6379> sadd myset a b c d 
(integer) 4
127.0.0.1:6379> smembers myset
1) "d"
2) "a"
3) "c"
4) "b"
127.0.0.1:6379> srandmember myset
"d"
127.0.0.1:6379> srandmember myset
"d"
127.0.0.1:6379> srandmember myset
"a"
127.0.0.1:6379> spop myset 
"c"
127.0.0.1:6379> smembers myset
1) "d"
2) "a"
3) "b"
127.0.0.1:6379> srem myset a f z 
(integer) 1
127.0.0.1:6379> smembers myset
1) "d"
2) "b"

在这里插入图片描述

127.0.0.1:6379> smembers myset
1) "a"
2) "d"
3) "c"
4) "b"
127.0.0.1:6379> smembers myset2
1) "a"
2) "d"
3) "c"
127.0.0.1:6379> smove myset myset2 b
(integer) 1
127.0.0.1:6379> smembers myset
1) "a"
2) "d"
3) "c"
127.0.0.1:6379> smembers myset2
1) "a"
2) "d"
3) "b"
4) "c"
127.0.0.1:6379> smove myset myset2 a
(integer) 1
127.0.0.1:6379> smembers myset
1) "d"
2) "c"
127.0.0.1:6379> smembers myset2
1) "a"
2) "d"
3) "b"
4) "c"
127.0.0.1:6379> smove myset myset2 a
(integer) 0
127.0.0.1:6379> 

在这里插入图片描述

Sorted set 数据类型 (zset、有序集合)

概述:
a、有序集合,元素类型为string,元素具有唯一性,不能重复
b、每个元素都会关联一个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同

zadd/zcard/acount/zrem/zincrby/zscore/zrange/zrank

127.0.0.1:6379> zadd myzset 1 "one"
(integer) 1
127.0.0.1:6379> zadd myzset 2 "two" 3 "three"
(integer) 2
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
127.0.0.1:6379> zrank myzset one
(integer) 0
127.0.0.1:6379> zrank myzset two
(integer) 1
127.0.0.1:6379> zrank myzset four
(nil)
127.0.0.1:6379> zcard myzset
(integer) 3
127.0.0.1:6379> zcount myzset 1 2
(integer) 2
127.0.0.1:6379> 
127.0.0.1:6379> zrem myzset one two 
(integer) 2
127.0.0.1:6379> zrand myzset 0 -1
(error) ERR unknown command `zrand`, with args beginning with: `myzset`, `0`, `-1`, 
127.0.0.1:6379> 
127.0.0.1:6379> zrange myzset 0 -1
1) "three"

在这里插入图片描述

127.0.0.1:6379> zscore myzset three
"3"
127.0.0.1:6379> zscore myzset two
(nil)
127.0.0.1:6379> zincrby myzset 2 two 
"2"
127.0.0.1:6379> zincrby myzset -1 two
"1"
127.0.0.1:6379> zincrby myzset 1 two
"2"
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "two"
2) "2"
3) "three"
4) "3"

在这里插入图片描述

zrangebyscore/zremrangebyrank/zremrangebyscore

127.0.0.1:6379> zadd myzset 1 one 2 two 3 three 4 four
(integer) 4
127.0.0.1:6379> zrangebyscore myzset 1 3
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> zrangebyscore myzset (1 3
1) "two"
2) "three"
127.0.0.1:6379> zrangebyscore myzset -inf +inf limit 2 3
1) "three"
2) "four"
127.0.0.1:6379> zrangebyscore myzset 0 3 limit 2 3
1) "three"
127.0.0.1:6379> 
127.0.0.1:6379> zremrangebyscore myzset 1 2
(integer) 2
127.0.0.1:6379> zrange myzset 0 -1
1) "three"
2) "four"

在这里插入图片描述

zrevrange/zrevrangebyscore/zrevrank

127.0.0.1:6379> zadd myzset 1 one 2 two 3 three 4 four
(integer) 4
127.0.0.1:6379> zrevrange myzset 0 -1 withscores
1) "four"
2) "4"
3) "three"
4) "3"
5) "two"
6) "2"
7) "one"
8) "1"
127.0.0.1:6379> zrevrange myzset 1 3
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> zrevrank myzset one
(integer) 3
127.0.0.1:6379> zrevrank myzset four
(integer) 0
127.0.0.1:6379> zrevrangebyscore myzset 3 0
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> zrevrangebyscore myzset 4 0 limit 1 2
1) "three"
2) "two"
127.0.0.1:6379> zrevrangebyscore myzset +inf -inf limit 1 2
1) "three"
2) "two"
127.0.0.1:6379> 

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值