redis的基本使用笔记一

本文详细介绍了Redis中的基本命令,包括查看数据库大小、查找key、设置key过期时间等。同时,深入讲解了String类型的操作,如字符串追加、设置生存时间、获取长度等。此外,还涵盖了List类型的操作,如插入元素、删除元素、获取子列表等。这些内容有助于理解Redis的数据管理和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.基本的命令

1.1 dbsize命令

查看当前数据库的key数量

dbsize  

在这里插入图片描述

1.2 keys命令

查看所有key

keys *

在这里插入图片描述
keys支持正则表达式
在这里插入图片描述
在这里插入图片描述

1.3 exists命令

查看key是否存在,存在返回1,不存在返回0

exists key1

在这里插入图片描述

1.4 move命令

移动当前数据库的key到别的数据库中,转移成功返回1,否则返回0

move key1 1

在这里插入图片描述
到第1个数据库中查看(初始有16个数据库,从0开始。默认是第0个数据库)
在这里插入图片描述

1.5 del命令

删除指定的key,若key不存在则忽略,返回删除的key数量
在这里插入图片描述

1.6 expire命令

设置key的过期时间,超过时间后,将会自动删除该key。
在这里插入图片描述

1.7 expipeat命令

作用与expipe命令相同,都用于为key设置生存时间。不同在于expipeat命令接受的时间参数是UNIX时间戳
时间戳的知识我不是很懂这里不作示范

1.9 persist命令

移除给定key的生存时间,将这个 key 从带生存时间 key 转换成一个不带生存时间、永不过期的 key 。
在这里插入图片描述

1.10 ttl命令

返回key剩余的过期时间。 这种反射能力允许Redis客户端检查指定key在数据集里面剩余的有效期。
如果key不存在或者已过期,返回 -2
如果key存在并且没有设置过期时间(永久有效),返回 -1 。
上面已经演示不作示范。

pexpire、pexpireat、ptll作用分别与expire、expireat、tll类似,只是前者单位是毫秒,后者是秒。

以上是常用的命令所以做了笔记,以便加深记忆。要更深入了解命令可以查看中文官网http://www.redis.cn/commands.html。

2.String类型的基本操作

2.1 append命令

如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。
在这里插入图片描述

2.2 strlen命令

返回key的string类型value的长度。如果key对应的非string类型,就返回错误。如果key不存在,返回0。
在这里插入图片描述

2.3 incr命令!

对存储在指定key的数值执行原子的加1操作。
如果指定的key不存在,那么在执行incr操作之前,会先将它的值设定为0。
如果指定的key中存储的值不是字符串类型或者存储的字符串类型不能表示为一个整数,那么执行这个命令时服务器会返回一个错误:
(eq:(error) ERR value is not an integer or out of range)。
这个操作仅限于64位的有符号整型数据。
在这里插入图片描述

2.4 incrby命令

将key对应的数字加decrement。如果key不存在,操作之前,key就会被置为0。
在这里插入图片描述

2.5 decr命令

对key对应的数字做减1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。
在这里插入图片描述

2.6 decrby命令

将key对应的数字减decrement。如果key不存在,操作之前,key就会被置为0。
在这里插入图片描述

2.7 getrange命令

返回key对应的字符串value的子串,这个子串是由start和end位移决定的(两者都在string内)。可以用负的位移来表示从string尾部开始数的下标。所以-1就是最后一个字符,-2就是倒数第二个,以此类推。

这个函数处理超出范围的请求时,都把结果限制在string内。
在这里插入图片描述

2.8 setrange命令

这个命令的作用是覆盖key对应的string的一部分,从指定的offset处开始,覆盖value的长度。如果offset比当前key对应string还要长,那这个string后面就补0以达到offset。不存在的keys被认为是空字符串,所以这个命令可以确保key有一个足够大的字符串,能在offset处设置value。
在这里插入图片描述

2.9 setex命令

设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期。
SETEX是原子的,也可以通过把上面两个命令放到MULTI/EXEC块中执行的方式重现。相比连续执行上面两个命令,它更快,因此当Redis当做缓存使用时,这个操作更加常用。
在这里插入图片描述

2.10 setnx命令

将key设置值为value,如果key不存在,这种情况下等同SET命令。 当key存在时,什么也不做。SETNX是”SET if Not eXists”的简写。
在这里插入图片描述

2.11 mset命令

对应给定的keys到他们相应的values上。MSET会用新的value替换已经存在的value,就像普通的SET命令一样。如果你不想覆盖已经存在的values,请参看命令MSETNX。

MSET是原子的,所以所有给定的keys是一次性set的。客户端不可能看到这种一部分keys被更新而另外的没有改变的情况。
在这里插入图片描述

2.12 mget命令

返回所有指定的key的value。对于每个不对应string或者不存在的key,都返回特殊值nil。正因为此,这个操作从来不会失败。
在这里插入图片描述

2.13 msetnx命令

对应给定的keys到他们相应的values上。只要有一个key已经存在,MSETNX一个操作都不会执行。 由于这种特性,MSETNX可以实现要么所有的操作都成功,要么一个都不执行,这样可以用来设置不同的key,来表示一个唯一的对象的不同字段。
在这里插入图片描述

2.14 getset命令

自动将key对应到value并且返回原来key对应的value。如果key存在但是对应的value不是字符串,就返回错误。
在这里插入图片描述

3.List类型的基本操作

3.1 lpush命令

将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。
可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。元素是从最左端的到最右端的、一个接一个被插入到 list 的头部。 所以对于这个命令例子 LPUSH mylist a b c,返回的列表是 c 为第一个元素, b 为第二个元素, a 为第三个元素。
在这里插入图片描述

3.2 rpush命令

向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key 保存的不是一个列表,那么会返回一个错误。

可以使用一个命令把多个元素打入队列,只需要在命令后面指定多个参数。元素是从左到右一个接一个从列表尾部插入。 比如命令 RPUSH mylist a b c 会返回一个列表,其第一个元素是 a ,第二个元素是 b ,第三个元素是 c。
在这里插入图片描述

3.3 lrange命令

返回存储在 key 的列表里指定范围内的元素。 start 和 end 偏移量都是基于0的下标,即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。

偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。
在这里插入图片描述

3.4 lpop命令

移除并且返回 key 对应的 list 的前count个元素。不输count时默认为1.
在这里插入图片描述

3.5 rpop命令

移除并返回存于 key 的 list 的最后count个元素。不输count时默认为1
在这里插入图片描述

3.6 lindex命令

返回列表里的元素的索引 index 存储在 key 里面。 下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。 负数索引用于指定从列表尾部开始索引的元素。在这种方法下,-1 表示最后一个元素,-2 表示倒数第二个元素,并以此往前推。

当 key 位置的值不是一个列表的时候,会返回一个error。
在这里插入图片描述

3.7 llen命令

返回存储在 key 里的list的长度。 如果 key 不存在,那么就被看作是空list,并且返回长度为 0。 当存储在 key 里的值不是一个list的话,会返回error。
在这里插入图片描述

3.8 lrem命令

从存于 key 的列表里移除前 count 次出现的值为 value 的元素。 这个 count 参数通过下面几种方式影响这个操作:

  1. count > 0: 从头往尾移除值为 value 的元素。
  2. count < 0: 从尾往头移除值为 value 的元素。
  3. count = 0: 移除所有值为 value 的元素。

比如, LREM list -2 “hello” 会从存于 list 的列表里移除最后两个出现的 “hello”。

需要注意的是,如果list里没有存在key就会被当作空list处理,所以当 key 不存在的时候,这个命令会返回 0。
在这里插入图片描述

3.9 ltrim命令

修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。start 和 stop 都是由0开始计数的, 这里的 0 是列表里的第一个元素(表头),1 是第二个元素,以此类推。

例如: LTRIM foobar 0 2 将会对存储在 foobar 的列表进行修剪,只保留列表里的前3个元素。

start 和 end 也可以用负数来表示与表尾的偏移量,比如 -1 表示列表里的最后一个元素, -2 表示倒数第二个,等等。
在这里插入图片描述

3.10 rpoplpush命令

RPOPLPUSH source destination

原子性地返回并移除存储在 source 的列表的最后一个元素(列表尾部元素), 并把该元素放入存储在 destination 的列表的第一个元素位置(列表头部)。

例如:假设 source 存储着列表 a,b,c, destination存储着列表 x,y,z。 执行 RPOPLPUSH 得到的结果是 source 保存着列表 a,b ,而 destination 保存着列表 c,x,y,z。

如果 source 不存在,那么会返回 nil 值,并且不会执行任何操作。 如果 source 和 destination 是同样的,那么这个操作等同于移除列表最后一个元素并且把该元素放在列表头部, 所以这个命令也可以当作是一个旋转列表的命令。
在这里插入图片描述

3.11 lset命令

LSET key index value

设置 index 位置的list元素的值为 value。 当index超出范围时会返回一个error。
在这里插入图片描述

3.12 linsert命令

LINSERT key BEFORE|AFTER pivot value

把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。
当pivot不存在时,返回-1。
当 key 不存在时,这个list会被看作是空list,任何操作都不会发生,返回0。
当 key 存在,但保存的不是一个list的时候,会返回error。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

苏觉s

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

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

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

打赏作者

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

抵扣说明:

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

余额充值