Redis 命令补充

本文详细介绍了Redis中List数据结构的应用与操作方法,包括如何作为栈和队列使用,以及各种实用命令如LPUSH、RPUSH、LSET、LREM等的功能与使用场景。此外还介绍了Redis对多种编程语言的支持。

补充:  List

命令  List  链表  即是栈又是队列

栈:先进后出------试管

队列:先进先出------管道

命令测试:

Lpush  在头部添加字符串元素

Lpush mylist “hello”

Lpush mylist “word”

Lrange mylist 0 -1

 

队列

rpush  在尾部添加字符串元素

 

rpush mylist “hello”

rpush mylist “word”

Lrange mylist 0 -1

 

 

 

如何在元素中间添加元素

 

 

Lset  设置list中制定下标的元素值

 

 

 

Lrem key对应list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除)

 

 

Ltrim 保留指定key的值范围内的数据

 

Lpop list头部删除元素,并返回删除元素

 

 

 

rpop从尾弹出

 

Rpoplpush:从第一个list尾部移除元素,并添加到第二个list的头部

 

Lindex :返回名称为keylistindex位置的元素

 

 

Llen

返回key对应的list的长度

 

 

 

 

 

Redis 本身提供一个Java语言支持(不仅仅是java 各个语言都支持,如果想要通过redis语言开发 ,我们就需要通过Maven去获取该组件)

 

集合中增加元素

 

返回集合大小

 

删除集合中元素

 

 

 

判断出集合中是否包含某个元素

 

 

列出集合中所有元素

 

 

Redis支持不同无序、有序的列表,无序、有序的集合间的交集、并集等高级服务器端原子操作。

redis提供五种数据类型:stringhashlistsetzset(sorted set)

 

redis使用了两种文件格式:全量数据和增量请求。

 

全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;

 

增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SETRPUSHSADDZADD

 

redis的存储分为内存存储、磁盘存储log文件三部分,配置文件中有三个参数对其进行配置。

 

 

对存储在指定key的数值执行原子的加1操作。 

Incr

 

Decr

对存储在指定key的数值执行原子的1操作。 

 

 

 

key对应的数字减decrement

 

key的值 减相应的数字

 

GETRANGE key start end

作用: 是获取字符串中 [start, stop]范围的值

注意: 对于字符串的下标,左数从0开始,右数从-1开始


setrange key offset value

作用:把字符串的offset偏移字节,改成value

 

 

 

注意: 如果偏移量>字符长度, 该字符自动补0x00

 

 

expire key 整型值

作用: 设置key的生命周期,以秒为单位

 

 

设置秒数

 

 


毫秒

 

 

 

返回随机key


set key value [ex 秒数] / [px 毫秒数]  [nx] /[xx]

 

: set a 1 ex 10 , 10秒有效

Set a 1 px 9000  , 9秒有效

: 如果ex,px同时写,以后面的有效期为准

set a 1 ex 100 px 9000, 实际有效期是9000毫秒

 

nx: 表示key不存在时,执行操作

xx: 表示key存在时,执行操作

 

 

 

 

msetmget

 

 

修改字符串

 

 

setrange key offset value

作用:把字符串的offset偏移字节,改成value

 

 

超过长度  16进制 补全

 

 

追加字符串

 

setbit  key offset value

设置offset对应二进制位上的值

注意:

1:如果offset过大,则会在中间填充0,

2: offset最大大到多少

3:offset最大2^32-1,可推出最大的的字符串为512M

 

二进制下标为2的位置 A 65  a 97  中间相差32   二进制

65 0100 0001

32 0010 0000

97 0110 0001         

  

 

 

 

小写

 

 

 

 

 

 

查询key的生命周期

 

 

-1永久有效

-2 不存在的key

返回的是秒数

<think>嗯,用户想了解Redis命令列表及其用法。首先,我需要根据用户提供的引用内容来整理相关信息。用户给出了三个引用,分别涉及Redis的基本数据结构、Java中的方法以及Set命令的具体应用。 首先,根据引用[1],Redis支持五种基本数据结构:字符串、哈希、列表、集合和有序集合。还有HyperLogLog、Bitmaps、Streams等其他类型。需要把这些数据结构的常用命令列出来,比如字符串的SET、GET,哈希的HSET、HGET等。然后,引用[2]提到了列表操作的命令,如LPUSH、LRANGE、RPOP,以及集合操作。引用[3]详细说明了Set类型的命令,比如SADD、SREM、SISMEMBER等,以及应用场景比如好友列表、共同关注。 接下来要组织这些命令,按数据结构分类,每个类别下给出常用命令和示例。同时要注意用户可能需要的实际应用场景,比如引用[3]中的好友功能,可以结合命令举例说明。此外,用户提到生成相关问题,需要准备几个相关问题,比如如何选择数据结构、Set和List的区别、事务命令等。 还要注意用户提供的格式要求:行内数学表达式用$...$,但这里可能不涉及数学公式。确保使用中文回答,结构清晰,分步骤说明。需要检查是否有遗漏的命令类型,比如HyperLogLog和Bitmaps,虽然用户可能更关注基本结构,但还是要简要提及。 最后,确保回答中引用标识正确添加,比如在提到集合操作时引用[3],在列表命令时引用[2],整体结构引用[1]。可能还需要补充一些常用命令比如键管理、过期时间、事务等,引用[1]提到了数据库管理命令,需要包括这些内容。 总结步骤:按数据结构分类,每类列出命令及用法,给出示例,结合应用场景,添加相关问题。检查引用标注是否正确,确保覆盖用户提供的引用内容,并补充必要的信息。</think>### Redis命令分类及用法详解 Redis支持5种核心数据结构和多种扩展数据类型,以下是按照数据结构分类的常用命令整理: #### 一、字符串(String) 1. `SET key value [EX seconds]`:设置键值对(带过期时间) ```bash SET username "zhangsan" EX 60 # 设置60秒后过期 ``` 2. `GET key`:获取字符串值 3. `INCR key`:数值自增1,常用于计数器场景[^1] #### 二、哈希(Hash) 1. `HSET key field value`:设置哈希字段 ```bash HSET user:001 name zhangsan age 28 ``` 2. `HGET key field`:获取单个字段值 3. `HGETALL key`:获取所有字段值 #### 三、列表(List) 1. `LPUSH key value`:左侧插入元素(实现消息队列) ```bash LPUSH news_queue "article1" ``` 2. `LRANGE key start end`:获取范围元素 3. `BRPOP key timeout`:阻塞式右侧弹出(实现工作队列)[^2] #### 四、集合(Set) 1. `SADD key member`:添加元素(实现共同好友) ```bash SADD user:001:friends 002 003 ``` 2. `SINTER key1 key2`:求交集 3. `SISMEMBER key member`:判断元素是否存在[^3] #### 五、有序集合(Sorted Set) 1. `ZADD key score member`:带分数添加元素 ```bash ZADD leaderboard 95 "PlayerA" ``` 2. `ZRANGE key start end [WITHSCORES]`:按排名范围查询 3. `ZREVRANK key member`:获取逆序排名 #### 六、键管理 1. `KEYS pattern`:查找匹配键(生产环境慎用) 2. `EXPIRE key seconds`:设置过期时间 3. `DEL key`:删除键值 #### 七、事务命令 ```bash MULTI # 开启事务 SET balance 100 INCRBY balance 50 EXEC # 执行事务 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值