Redis之五大基础数据结构及简单操作

Redis之五大基础数据结构及简单操作

注:本文是基于Ubuntu 20.04.3系统上Redis v5.0.7进行讲解

1.分类

redis存储的是:key,value格式的数据,其中key都是字符串,value有5种 不同的数据结构
redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储
数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串

在这里插入图片描述

目前为止Redis支持的键值数据类型如下:
1)字符串类型 string:

2)哈希类型 hash:

map格式:先起一个key,再为这个key对应的 value再起一个key与value

3)列表类型 list:

linkedlist格式,支持重复元素即允许插入相同元素,按照插入头尾顺序排序,可以支持导入元素于头部或者尾部

4)集合类型 set:

不允许重复元素即不允许插入相同元素, 元 素无顺序(即输出所有values的时候不按照插入顺序进行输出,而是随机打乱进行输出)

5)有序集合类型 sortedset:

不允许重复元素即不允许插入相同元素,且相同元素有顺序

注:不管是哪种的数据结构,key的名字不能重复

在这里插入图片描述

2.string

在这里插入图片描述

image-20220315164650114

2.1set

set:不管是对键第一次赋值还是第二次赋值,SET 命令总是返回 OK;
注意:不能一次性设置多个

SET KEY_NAME VALUE


2.2get

get: 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误

GET KEY_NAME

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

3.hash

image-20220315164747802

3.1hset

hset :命令用于为哈希表中的字段赋值;
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作;
如果字段已经存在于哈希表中,旧值将被覆盖;
如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 ;
如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0

HSET KEY_NAME FIELD VALUE

在这里插入图片描述

3.2hget

Hget :命令用于返回哈希表中指定字段的值;
返回给定字段的值;
如果给定的字段或 key 不存在时,返回 nil

HGET KEY_NAME FIELD_NAME 

在这里插入图片描述

3.3getall

getall 命令用于返回哈希表中,所有的字段和值;
在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍;
以列表形式返回哈希表的字段及字段值;
若 key 不存在或者这个key是空的,则返回空列表

HGETALL KEY_NAME

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

3.4hdel

hdel :返回删除的filed的个数;
如果其中有filed不存在,则不会计不存在的filed的数量

HDEL KEY_NAME FIELD1.. FIELDN 

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

4.list

image-20220315164739767

4.1lpush

lpush: 命令将一个或多个值插入到列表头部。;
如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作;
当 key 存在但不是列表类型时,返回一个错误。
返回列表的新长度

LPUSH KEY_NAME VALUE1.. VALUEN

在这里插入图片描述

4.2lrange

Lrange: 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定;
其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推;
也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推;
返回一个列表,包含指定区间内的元素;
列表不存在或者空列表时返回(empty list or set)

LRANGE KEY_NAME START END

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

4.3lpop

Lpop: 命令用于移除并返回列表的第一个元素;
返回列表的第一个元素;
当列表 key 不存在时,返回 nil

在这里插入图片描述

在这里插入图片描述

5.set

image-20220315164812320

5.1sadd

sadd:命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略;
假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合;
当集合 key 不是集合类型时,返回一个错误;
返回的是被添加到集合中的新元素的数量,不包括被忽略的元素;

SADD KEY_NAME VALUE1..VALUEN

在这里插入图片描述

5.2smembers

smembers:命令返回集合中的所有的成员;
不存在的集合 key 被视为空集合;
返回集合中的所有成员

SMEMBERS KEY VALUE

在这里插入图片描述

5.3srem

srem:命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略;
当 key 不是集合类型,返回一个错误;
被成功移除的元素的数量,不包括被忽略的元素

SREM KEY MEMBER1..MEMBERN

在这里插入图片描述

6.sortedset

image-20220315164847885

6.1zadd

Zadd :命令用于将一个或多个成员元素及其分数值加入到有序集当中;
如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上;
分数值可以是整数值或双精度浮点数;
如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作;
当 key 存在但不是有序集类型时,返回一个错误;
命令返回被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员

ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN

在这里插入图片描述

6.2zrange

zrange:返回有序集中,指定区间内的成员;
其中成员的位置按分数值递增(从小到大)来排序;
具有相同分数值的成员按字典序(lexicographical order )来排列;
如果你需要成员按值递减(从大到小)来排列,请使用 ZREVRANGE 命令;
下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推;
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推;
指定区间内,带有分数值(可选)的有序集成员的列表

ZRANGE key start stop [WITHSCORES]

在这里插入图片描述

在这里插入图片描述

6.3zcrem

zcrem:命令用于移除有序集中的一个或多个成员,不存在的成员将被忽略。
当 key 存在但不是有序集类型时,返回一个错误;
返回被成功移除的成员的数量,不包括被忽略的成员

 zrem  key member [member ...]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GoGo在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值