Redis 常用命令以及结构

目录

1、目的

2、分析  

2.1 String (字符串)

2.2 List(列表)

在右侧插入数据

获取,返回列表里指定元素。

获取索引为N的元素

设置指定索引位置的元素值

2.3 Hash (哈希)

Redis---Hash 底层结构介绍

设置hash 值

删除Hash 值

2.4 ZSET

1、添加 先写权重,可更新覆盖

获取键zset 的集合中所有元素:

列出所有元素以及 他们对应的score

返回score 值在 min 和 max 之间的成员

返回成员member 的score 值

统计分支范围内的元素个数 [默认指闭区间]

获取对应的下标值

删除

2.5 SET


1、目的

     梳理了redis 的相关结构,以及其对应的用法。

2、分析  

     

2.1 String (字符串)

string 类型是redis 最近的类型,一个key 对应一个value

Redis 中String 类型是二进制安全的 ,可以包含任何数据,例如序列化的对象或者图片

String 类型一个键最大能存储 512M

Redis 中对String 类型的赋值命令是SET, 取值命令是GET

set myKey "testString"
​
get myKey

通过set 命令,加入key 为mykey,对应的值为testString 的缓存数据

2.2 List(列表)

Redis 列表类型是最简单的字符串列表啊,按照插入的顺序排序

每个List 最多存储 2^32-1 个元素(40多亿)

List 是简单的字符串列表,按照插入顺序进行排序,你可以添加一个元素到列表的头(左边) 或者尾部 (右边) ,底层是一个双向列表,对两端操作性能极高,通过索引操作中间的节点性能比较差

列表的元素类型为string

按照插入顺序排序

使用场景:

消息队列

排行榜

最新列表

Redis 中List 类型通过Push 命令赋值,通过lrang 命令取值

lpush test-list Java
​
    
lpush test-list PHP
 
lrange test-list  0 5 

key 值为test-list ,存入的 value 值分别为java PHP C++

在右侧插入数据

从右边(尾部) 插入一个或者多个值

rpush key value1 value2 ...
获取,返回列表里指定元素。

返回key 列表中的start 和end 之间的元素(包含start 和end ) 其中 0 表示列表中第一个元素, -1 表示最后一个元素

lrange key start stop

start stop 为元素的下标索引。索引从左侧开始,第一个元素为0,索引可以是负数,表示从尾部开始计数,如 -1 表示最后一个元素

获取索引为N的元素

获取列表imdex 位置的值(从左开始)

lindex key index

设置指定索引位置的元素值

将索引为index 的值设置为value

索引从左侧开始,第一个元素为0。 索引可以是负数,表示尾部开始计数,如 -1 表示最后一个元素

lset key index value

修改键为a1的列表中下标为1的元素值为z:

lset a1 1 z

2.3 Hash (哈希)

Redis 的hash 是一个键值对集合,特别适合用于存储对象

每个hash 最多可存储 2^32 - 1 个元素(40多亿)

Redis 中的hash 类型通过HMSET 命令赋值, H

Redis---Hash 底层结构介绍

Redis 的hash 类型的底层实现是一个非常优化的数据结构,它会根据实际情况选择使用紧凑的压缩列表(zipList) 或者 散列表(hashtable) 作为底层 实现。

设置hash 值

Redis 中设置 Hash 值的命令是HSET

HSET key field value

其中,key 是哈希表的名称,field 是哈希表中的字段名,value 是字段对应的值,如果哈希表中原本不存在该字段,则会创建 一个新的字段,并将其值设置为指定的值,如果该字段已经存在, 则会覆盖原有的值。

例如,我们可以使用以下命令设置一个 user:1001 的哈希表中的字段 name 的值Alice :

HSET user:1001 name Alice

如果需要设置多个字段值,可以使用HMSET 的命令,它的语法如下:

HMSET key field1 value1 [field1 value2 ...]

例如,我们可以使用以下命令同时设置user:1001 哈希表中的name 和age 字段的值

HMSET user:1001 name Alice age 25

这样就可以一次性设置多个字段的值了

在Redis中获取Hash 值的命令是HGET ,它的语法如下:

HGET key field

其中,key 是哈希表的名称,field 是哈希表中的字段名

例如,我们可以使用以下命令获取一个名为user:1001 的哈希表中的字段name 的值:

HGET user:1001 name

如果需要获取哈希表中的多个字段值,可以使用HMGET 命令,它的语法如下:

HMGET key field1 [field2 ...]

例如,我们可以使用以下命令获取 user:1001 哈希表中的name 和 age 字段的值:

HMGET user:1001  name age

如果需要获取哈希表中所有的字段和值,可以使用HGETALL 命令,它的语法如下:

HGETALL key

例如,我们可以使用以下命令获取 user:1001 哈希表中的所有字段和值

HGETALL user:1001
删除Hash 值

在 Redis 中,删除Hash 值命令是HDEL ,它的语法如下:

HDEL key field [field ...]

其中, key 是哈希表的名称, field 是要删除的字段名,你可以一次删除一个或者多个字段。

例如,我们可以使用如下 命令删除一个名为user:1001 的哈希表中的字段 name:

HDEL user:1001 name

或者

HDEL user:1001 name age

这个命令会删除 user:1001 哈希表中的name 和age 字段

需要注意的是,HDEL 命名只会删除指定的字段以及其值, 而不会删除整个哈希表,如果你想要删除整个哈希表,可以使用 DEL 命令,例如

DEL user:1001

这个命令会删除 user:1001 哈希表

2.4 ZSET

集合的元素是唯一的,但是分数可以重复。

① 元素为string 类型

② 每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序

1、添加 先写权重,可更新覆盖

将一个或者多个元素(value ) 以及分数(score) 加入到有序集合key中

zadd key score1 member1 score2 member2 ...

向键zset 的集合中添加元素test1 ,test2 ,test3 权重分别为 4, 5 ,3

zadd zset 4 test1 5 test2 3 test3

如果某个元素已经是有序集的元素,那么更新这个元素的分数值,并通过重新插入这个元素来保证该元素在正确的位置上。

分数值可以是整数值或者双精度浮点数

如果有序集合key 不存在,则创建一个空的有序集合并执行zadd操作

获取键zset 的集合中所有元素:
zrange  key start stop 

获取键值zset 的集合中所有元素

zrange zset 0 -1

列出所有元素以及 他们对应的score
zrange key start end withscores 

其中 0 表示列表的第一个 元素, -1 表示最后一个元素。 withScores 是可选参数,是否返回分数

zrange zset 0 -1 withscores 

返回score 值在 min 和 max 之间的成员

zrangescore key min max

获取键zset 的集合中权限值在 5和 6 之间的成员:

zrangebyscore zset 5 6

返回成员member 的score 值
zscore key member 

获取键zset 的集合元素 zhangsan的权重

zscore zset zhangsan

统计分支范围内的元素个数 [默认指闭区间]

统计该集合在Minscore 到maxscore 分数区间中元素的个数

zcount zset 4 5

获取对应的下标值

返回value 在集合中的排名,从0开始

zrank zset lisi

删除

删除指定元素

删除钙元素下value 的元素

zrem key member1 member2 ...

删除集合zset 中元素zhangsan:

zrem zset zhangsan

删除权重在指定范围的元素 [包括最小值和最大值]

zremrangebyscore key min max

删除集合zset 中权限在 5 ,6 之间的元素

zremrangebyscore zset 5  6

2.5 SET

redis 中set 是String 类型的无序集合,它的底层其实是一个value 为null 的hash 表,所以,添加 , 删除 查找的复杂度都是 O(1)

sadd key value1 value2 添加一个或者多个元素到集合中

smembers <key> 取出该集合的所有值

scard <key> 返回该集合的元素个数

srem <key> <value1> <value> 删除集合中 的某几个元素

spop <key> 随机从该集合吐出一个元素

sdiff <key1> <key2> 返回两个集合中的差集元素(key1 中的,不包含key2 的)

sunion <key1> <key2> 返回两个集合并集元素

sinter <key1> <key2> 返回两个集合的交集元素

srandmember <key> <n> 随机从该集合中取出n个值,不会从集合中删除

smove <source> <desctination> <value> 把集合中一个值从一个集合移动到另外一个集合

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis 是一种高性能的键值对存储系统,支持丰富的数据结构和操作,以下是 Redis 常用命令的简要介绍: 1. SET key value [EX seconds] [PX milliseconds] [NX|XX]: 设置键值对,可以指定过期时间,可选的 NX 或 XX 参数用于控制键的行为。 2. GET key: 获取指定 key 的值。 3. DEL key [key ...]: 删除指定 key。 4. EXISTS key: 检查 key 是否存在。 5. KEYS pattern: 查找所有符合给定模式的 key。 6. EXPIRE key seconds: 设置 key 的过期时间。 7. TTL key: 获取 key 的剩余过期时间。 8. INCR key: 将 key 中储存的数字值增一。 9. DECR key: 将 key 中储存的数字值减一。 10. LPUSH key value [value ...]: 在列表左侧添加元素。 11. RPUSH key value [value ...]: 在列表右侧添加元素。 12. LLEN key: 获取列表长度。 13. LRANGE key start stop: 获取列表指定范围内的元素。 14. LPOP key: 移除并返回列表左侧的元素。 15. RPOP key: 移除并返回列表右侧的元素。 16. SADD key member [member ...]: 向集合中添加元素。 17. SMEMBERS key: 获取集合中的所有元素。 18. SISMEMBER key member: 检查元素是否在集合中。 19. SREM key member [member ...]: 从集合中移除元素。 20. ZADD key score member [score member ...]: 向有序集合中添加元素。 21. ZRANGE key start stop [WITHSCORES]: 获取有序集合指定范围内的元素,可选的 WITHSCORES 参数用于获取元素的分值。 22. ZRANK key member: 获取有序集合中指定元素的排名。 23. ZREM key member [member ...]: 从有序集合中移除元素。 这些命令只是 Redis 提供的众多命令中的一部分,Redis 还支持其他的数据结构和操作,如哈希表、发布/订阅、事务等。详细的命令使用说明请参考 Redis 官方文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值