redis那点事11: 命令总结篇

本文详细总结了Redis的各类操作命令,包括key、string、list、hash、set、zset等操作命令,如DEL删除key、SET添加string数据等。同时给出注意事项,如生产环境禁用部分命令、关注时间复杂度、用scan渐进式删除非string的key等。

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

redis大纲: 

    传送

 

key操作命令

    DEL key 删除一条数据,删除成功返回1,删除失败返回0

    DUMP key 将对象序列化,并返回序列化的值,不对数据进行修改

    EXISTS key 检查数据是否存在,存在返回1,不存在返回0

    EXPIRE key s 给key设置过期时间,时间参数类型秒

    EXPIREAT key timestamp 给key设置过期时间, 时间参数类型时间戳

    PEXPIRE key ms 给key设置过期时间,时间参数类型毫秒

    PEXPIREAT key ms 给key设置过期时间,时间参数类型时间戳以毫秒计

    KEYS  reg 查找当前数据库正则匹配到的所有key

    PERSIST key 移除key的过期时间

    PTTL key 以毫秒的单位返回当前key剩余的过期时间

    TTL key 以秒的单位返回当前key剩余的过期时间

    RANDOMKEY 从当前数据库随机返回一个key

    RENAME key newkey 对key重命名为newkey,如果有newkey会覆盖

    RENAMENX key newkey 对key重命名为newkey,如果有newkey不会覆盖 成功返回1,失败返回0

    TYPE key 返回key值的类型,如过key为空返回none

    SELECT num redis默认16个库,切换到索引为num的库上

    CONFIG get key 获取指定配置文件中的key的配置信息

    CONFIG set key value 设置指定配置文件中的key的配置信息

    DBSIZE 获得当前库中key的个数

    FLUSHDB 删除当前库中所有的内容

    FLUSHALL 删除所有库中所有的内容

    LASTSAVE 获得最后一次同步磁盘的时间

    INFO 查看当前redis配置信息

    SAVE 持久化内存中的数据到磁盘上,该操作是阻塞的, 在save过程中不响应客户端请求

    BGSAVE 持久化内存中的数据到磁盘上,该操作在后台执行,是异步操作, 在操作过程后仍响应客户端请求

    SHUTDOWN 关闭server不是退出客户端

    EXIT 退出当前客户端

    QUIT 退出当前客户端

 

string操作命令

    SET key value 添加一条数据,如果有数据会覆盖

    GET key 取得一条数据,返回对应的值,如果key为空返回nil

    GETRANGE key 0 1 返回key字符串的0 - 1的字符,当第二个参数为-1将返回 所有的字符,

           如果key不存在,返回空字符串

    GETSET key value 将key的值改为value,并且返回key之前的值

           如果key不存在,返回nil,并且添加key的值为value

    MGET key1 key1 获得多个key的值

    SETEX key s value 创建key的值为value并且在x秒过期,会替换原数据

    SETNX key value 当key不存在的时候才会创建,成功返回1,失败返回0

    STRLEN key 获取key的长度

    MSET k1 v1 [k2 v2] 添加多条数据,如果数据存在会覆盖

    MSETNX k1 v1 [k2 v2] 添加多条数据,如果数据存在不会覆盖

    SETEX key ms value 创建key的值为value并且在x毫秒秒过期,会替换原数据

    INCR key 将key对应的值 +1 如果值不是数字类型会报错

    INCRBY key num 将key对应的值 +n

    DECR key 将key对应的值 -1

    DECRBY key num 将key对应的值 -n

    APPEND key value 对key对应的值在后面拼接value

 

list操作命令

    LRANGE key 0 2 获取key集合0下标到2下标的值,如果第二个下标为-1, 则返回集合的所有值

    LPUSH key value [value] 在key集合的头部添加value,如果集合不存在则创建

    RPUSH key value [value] 在key集合的尾部添加value,如果集合不存在则创建

    LPUSHX key value 在key集合的头部添加value,如果集合不存在则不插入

    RPUSHX key value 在key集合的尾部添加value,如果集合不存在则不插入

    LLEN key 获取并返回key集合的长度,如果集合为空,返回0

    LPOP key 获取并弹出key集合的第一个元素

    RPOP key 获取并弹出key集合的最后一个元素

    BLPOP k1 [k2] s 获取并弹出key集合的第一个元素

          如果集合没有元素,则会阻塞,等待超时,或者弹出元素

    BRPOP k1 [k2] s 获取并弹出key集合的最后一个元素

           如果集合没有元素,则会阻塞,等待超时,或者弹出元素

    LINDEX key index 通过所以索引来获得key集合的元素,如果不存在返回nil

    LREM key count value 移除key集合值为value的元素 如果有多个相同的value

           则会移除count个,如果count为0则会移除所有的值为

           value的元素,返回移除的个数,如果集合为空返回0

    LSET key index value 修改key集合下标为lndex的值为value, 如果没有该下标则报错

    LTRIM key 1 3 移除key集合1-3下标以外的所有元素,只保留1-3的元素

    RPOPLPUSH k1 k2 移除k1集合最后一个元素,将该元素添加到k2集合并回 如果k1的值为空则返回nil

    RPOPLPUSH k1 k2 s 移除k1集合最后一个元素,将该元素添加到k2集合并返回

           如果k1的值为空则阻塞,等待超时,或者弹出元素

    LINSERT key BEFORE|AFTER point value

          在key集合的point元素之前|之后添加值为value的元素, 如果有多个值和point相同则会在第一个值

          之前 | 之后添加, 如果没有值为point则会返回-1,如果添加成功返回集合度

 

hash操作命令

    HSET key field value 在哈希表key中添加键为field值为value的字段

           添加成功返回1,如果存在field返回0,并且覆盖原值

    HGET key field 在哈希表key中查找键为field的字段,不存在返回nil

    HGETALL key 获取哈希表key的所有的字段和值

    HDEL key field1 [field2] 删除哈希表key的field1对应的值,可以删除多个, 成功返回1,失败不存在返回0

    HLEN key 获取哈希表key的长度

    HKEYS key 获取哈希表key的所有的键

    HVALS key 获取哈希表key的所有的值

    HEXISTS key field 查看哈希表key指定的field字段是否存在, 存在返回1,不存在返回0

    HMGET key ld1 [ld2] 获取哈希表key的 ld1 ...对应的值,不存在返回nil

    HMSET key ld1 v1 [ld2 v2] 在哈希表key中批量添加 ld1 v1...,会覆盖原值

    HSETNX key field value 在哈希表key中当field不存在,添加键为field值为value的字段

    HINCRBY key ld num 在哈希表key中给ld对应的整数的值向上增加num

           如果字段不存在会创建,值为num, 如果存在但不是数字类型则报错

    HINCRBYFLOAT key ld num 在哈希表key中给ld对应的浮点数的值向上增加num

           如果字段不存在会创建,值为num, 如果存在但不是数字类型则报错

    HSCAN key num [MATCH pattern] [COUNT count]    迭代哈希表key中的键值对

 

set操作命令

    SADD key v1 [v2] 向集合key添加v1... 返回添加的条数

    SCARD key 获得key集合的长度

    SISMEMBER key value key集合是否包含value的值 如果有返回1,没有返回0

    SMEMBERS key 获得key集合的所有的值

    SMOVE k1 k2 v 将k1集合的v的值移k2集合, 移动成功返回1,没有或失败返回0

    SPOP key [count] 在key集合获取并弹出一个或多个值

    SRANDMEMBER key [count] 随机获得一个或多个值

    SREM key v1 [v2] 移除key集合的一个或多个值,返回移除的个数

    SDIFF k1 [k2] 获得k1集合与k2集合的差集,如果k2为空返回k1的所有值

           如果k2不存在返回k2的所有值,如果k1不存在返回空

    SDIFFSTORE newk k1 [k2] 获得k1集合与k2集合的差集,并储存在newk中, 返回添加的个数

           如果k2为空将k1的所有值添加到k2,返回添加的个数

           如果k2不存在将k1的所有值添加到k2,返回添加的个数

           如果k1不存在返回0

    SINTER k1 [k2] 获得k1集合与k2集合的交集,如果k2为空返回k1的所有值

           如果k2不存在返回空,如果k1不存在返回空

    SINTERSTORE newk k1 [k2] 获得k1集合与k2集合的交集,并储存在newk中

           返回添加的个数,如果k1不存在返回0,如果k2为空返回0

    SUNION k1 [k2] 获得k1集合与k2集合的并集,如果k2为空返回k1的所有值

           如果k2不存在返回k2的所有值,如果k1不存在返回空

    SUNIONSRORE newk k1 [k2] 获得k1集合与k2集合的并集,并储存在newk中, 返回添加的个数

           如果k2为空将k1的所有值添加到k2,返回添加的个数

           如果k2不存在将k1的所有值添加到k2,返回添加的个数

           如果k1不存在返回0

    SSCAN key cursor [MATCH pattern] [COUNT count]   迭代集合中的元素

 

zset操作命令

    ZADD key s1 v1 [s1 v1] 向zest添加一条或多条数据,或者更新已存在数据的分数, 返回插入的条数

    ZCARD key 获得zset的数据总数

    ZCOUNT key min max 获得zset中分数在min ~ max之间的总数

    ZINCRBY key num value 将zset中的value的分数增加num,返回增加之后的数据, 没有则创建

    ZRANK key value 获得zset中value的索引,如果不存在返回nil

    ZREVRANK key value 获得zset中value的分数排名,从大到小,如果不存在返回nil

    ZSCORE key value 获得zset中value的分数,如果不存在返回nil

    ZREM key v1 [v2] 删除zset中value的数据,成功返回1,失败或不存在返回0

    ZRANGE key min max [WITHSCORES]   

           获得zset中索引在min ~ max的数据,没有则返回空

           0 ~ -1是返回所有的数据,加上WITHSCORES也将分数返回

    ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT page num]

           获得zset中分数在min ~ max的数据,没有则返回空

           如果加上WITHSCORES也将分数返回

           如果加上LIMIT则分页显示 page是当前页码 num是显示条数

    ZREMRANGEBYRANK key min max

           删除zset中分数排名 min ~ max之间的数据,返回删除的个数, 没有删除返回0

    ZREMRANGEBYSCORE key min max

           删除zset中分数 min ~ max之间的数据,返回删除的个数, 没有删除返回0

    ZREVRANGE key min max [WITHSCORES]

           获得zest中索引 min ~ max的成员,通过分数从高到低排序

           如果没有返回空,加上WITHSCORES也将分数返回

    ZREVRANGEBYSCORE key min max [WITHSCORES]

           获得zest中分数 min ~ max的成员,通过分数从高到低排序

           如果没有返回空,加上WITHSCORES也将分数返回

    ZSCAN key 0 迭代有序集合中的元素包括分

 

注意:

    1. 在生产环境中 keys flushall flushdb config save eval 这些命令最好禁用

    2. 时间复杂度 O(n) 的命令一定要注意这个 n 的大小

    3. 如果要删除一个非string 的 key 可以使用 ?scan 进行渐进式删除     传送

    4. keys 被禁用可以使用 scan 命令来获得 key

 

结束

  这就是我对redis命令总结篇的总结  感觉有用就点个赞吧 如果有错误或更好的方法评论区请多多指出  相互学习共同进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值