Redis的数据类型和常用命令

本文详细介绍了Redis中的五大数据类型:String、List、Set、Hash和Zset,以及它们各自的特色和常用操作命令。例如,String类型的set、get、append等命令,List的lpush、lpop、lrange等,Set的sadd、smembers、srem等,Hash的hset、hget、hincrby等,和Zset的zadd、zrange、zrem等。此外,还提到了通用命令如select、keys、exists等,以及如何对键设置过期时间和查看键的生命周期。这些内容对于理解并使用Redis进行数据存储和操作至关重要。

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

redis的数据类型:

  • key + String
  • key + list
  • key + set
  • key + hash
  • key + zset

通用命令:

  • select n:选择库(n的范围为0-15)。
  • keys *:查看当前库所有的键。
  • exists key:查看某个键是否存在。
    exists k1
  • type key:查看键对应的数据类型。
    type k1
  • del key:删除某个键。
    del k1
  • expire key seconds:为某个键设置过期时间。
    expire k1 10
  • ttl key:查看某个key还有多少秒过期。
    ttl k1(-1表示永不过期,-2表示已过期)
  • dbsize:查看当前数据库key的数量。
  • flushdb:清空当前库。
  • flushall:清空全部库。

String类型专属命令:

  • set key value:添加键值对,如果已存在当前键值对就覆盖。
    set k1 v1
  • get key:查看键对应的值。
    get k1
  • append key value:在指定key的值的末尾值添加新的value。
    append k1 abc
  • strlen key:获取指定key对应的值的字符串长度。
    strlen k1
  • setnx key value:只有在key不存在时才会赋值。
    setnx k2 v2
  • incr key:对指定的key的值进行+1操作。注意的是只能对数字进行操作,如果为空,新增值为1。
    incr k3
  • decr key:对指定的key的值进行-1操作。注意的是只能对数字进行操作,如果为空,新增值为-1。
    decr k3
  • incrby/decrby key 步长:对指定key的值进行+/-指定步长的数字。
    incr k3 8
  • mset key1 value1 key2 value2 … :同时设置一个或多个键值对。
    mset k1 v1 k2 v2 k3 v3
  • mget key1 key2 … :同时获取一个或多个key对应的值。
    mget k1 k2 k3
  • msetnx key1 value1 key2 value2 … :当任何一个key都不存在时,同时创建多个键值对。
    msetnx k1 v1 k2 v2 k3 v3
  • getrange key start end:截取key对应的值,从指定索引位置开始,到指定索引位置结束。
    getrange k1 0 3
  • setrange key start value:把指定key值索引位置的值替换为value。
    setrange k1 2 abc
  • set key 过期时间 value:设置键值对的同时设置过期时间。
    set k4 10 v4
  • getset key value:为指定key设置新值同时获取旧值。
    getset k1 abc

List专属命令:

Redis中的list是一个双向链表。元素按照插入的顺序进行排序,可以选择左侧插入和右侧插入。

  • lpush/rpush key value1 value2 … : 在左侧或右侧插入一个或多个值。
    lpush k1 a b c d
  • lpop/rpop key value:在列表左侧或者右侧弹出第一个值。如果值都被弹出了,那么键也就不存在了。
    lpop k1
  • rpoplpush key1 key2:在key1列表右侧弹出第一个值,在key2列表左侧插入。
    rpoplpush k1 k2
  • lrange key start end:在key列表中,从start索引开始,到end索引结束,截取数据(从左到右)。
    lrange k2 0 3
  • lindex key 索引:获取指定索引位置的元素(从左侧开始取值)。
    lindex k1 1
  • llen key:获取指定key对应值的长度。
    llen k1
  • linsert key before value newvalue:在指定值之前加上新值。
  • lrem key n value:从左到右删除n个value。

set专属命令:

Redis中的set与list类似,但是set可以自动去重。

  • sadd key value1 value2…:将一个或多个值添加到指定key中。
    sadd k1 a b a d
  • smembers key:取出key中所有对应的值。
  • sismember key value:判断指定key中是否包含此value,有就返回1,没有就返回0。
    sismember k1 a
  • scard key:返回指定集合的元素个数
  • srem key value1,value2,value3…:删除指定集合中的元素。
  • spop key n:从集合中弹出1个或多个值。
  • srandmember key n:从指定集合中随机取出n个元素(不会删除)。
  • sinter key1 key2:返回两个集合的交集元素。
  • sunion key1 key2:返回两个集合的并集元素。
  • sdiff key1 key2:返回两个集合的差集元素。

hash专属命令:

Redis中的hash类似于java中的Map<String,Object>。

  • hset key field value:为哈希表key中field字段赋值value。
    hset student name Tom
  • hget key field:获取哈希表key中field字段的值。
  • hmset key field1 value1 field2 value2 … :批量为key集合中的字段赋值。
  • hexists key field:查看哈希表 key 中,给定域 field 是否存在。
  • hkeys key:获取哈希表key中所有的field字段。
  • hvals key:获取哈希表key中所有的value。
  • hincrby key field increment: 为哈希表 key 中的域 field 的值加上增量 increment 。
  • hsetnx key field value:当域 field 不存在时,将哈希表 key 中的域 field 的值设置为 value 。

zset专属命令:

Redis中的zset是有序集合,和set很相似。但是在set的基础上,每个字段都关联了评分score。zset会根据score从小到大来排序。

  • zadd key score1 value1 score2 value2…:在key中存储指定的value及其评分。
    zadd k1 50 a 30 b 70 c
  • zrange key start stop WITHSCORES: 返回有序集 key 中,下标在 start 和stop之间的元素。如果带WITHSCORES,可以让分数一起和值返回到结果集。
  • zrangebyscore key min max [withscores] [limit offset count]:返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
  • zrevrangebyscore key max min [withscores] [limit offset count]:改为从大到小排列。
  • zincrby key increment value:为元素的score加上增量increment。
  • zrem key value: 删除该集合下,指定值的元素 。
  • zcount key min max:统计该集合,分数区间内的元素个数 。
  • zrank key value:返回该值在集合中的排名,从0开始。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值