redis~键-数据操作命令

    技术2025-02-28  11

    Redis 键命令用于管理 redis 的键。

    删除 : del key 序列化key : dump key 存在 : exists key 设置过期时间(秒) : expire key seconds 设置过期时间(毫秒) : pexpire key milliseconds 设置过期时间(时间戳) : expireat KEY TIME_IN_UNIX_TIMESTAMP 设置过期时间(毫秒时间戳) : pexpireat KEY TIME_IN_UNIX_TIMESTAMP 查询给定模式的key : keys pattern 移动key到指定库中 : move key db 移除key过期时间 : persist key key剩余过期时间(毫秒) : pttl key key剩余过期时间(秒) : ttl key 当前数据库中随机返回一个key : randomkey 修改key : rename key newkey 当newkey不存在时修改key为newkey : renamenx key newkey key对应value的数据的数据类型 : type key

    Redis支持五种数据类型:string,hash,list,set,zset

    String

    String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 String类型是Redis最基本的数据类型,一个键最大能存储512MB。 注意:一个键最大能存储512MB。

    命令

    设置key的值 : set key value 获取值 : get key 获取字符串数据中的子字符串 : (包括 start 和 end 在内):GETRANGE KEY_NAME start end

    set key 123456getrange key 1 2 返回:"23"

    设置新值返回旧值 : getset key 设置一对或者多对key-value : mset key1 value1 key2 value2… 设置一对或者多对key-value(key不存在时) : msetnx key1 value1 key2 value2… 获取一个或者多个key的值 : mget key1 key2 … 设置key,value 和过期时间(秒) : setex key seconds value 设置key,value 和过期时间(毫秒) : psetex key seconds value key不存在时设置key的值 : setnx key value key对应value的长度 : strlen key key对应value的值加1 : incr key key对应value的值减1 : decr key key对应value的值加指定值 : incrby key increment key对应value的值减指定值 : decrby key increment key对应value的值加指定值(浮点数) : incrbyfloat key increment value后追加字符串 : append key value 指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始 : SETRANGE KEY_NAME OFFSET VALUE

    SET key1 "Hello World" SETRANGE key1 6 "Redis" GET key1"Hello Redis"

    Hash(Map集合)

    一个string类型的field和value的映射表 每个 hash 可以存储 2的32次方减一个体键值对(40多亿)

    命令

    哈希表中的字段赋值 : hset hkey filedkey value filedkey value 字段不存在时添加 : hsetnx hkey fieldkey1 value 哈希表中key对应的所有的value : hvals hkey 哈希表中的所有的key : hkeys hkey 获取hash表的所有key-value : hgetall hkey 获取hash表中字段的数量 : hlen hkey 删除一个或者多个 : hdel hkey fidlekey fidlekey1 查看hash表中的key是否存在 : hexists hkey fieldkey 获取hash表中的key的值 : hget hkey fieldkey 指定key加1 : hincrby hkey field increment 指定key加浮点数 : hincrbyfloat hkey field increment 获取所有给定字段的值 : hmget hkey fieldkey 迭代哈希表中的键值对 : HSCAN key cursor [MATCH pattern] [COUNT count]

    List(列表)

    每个列表可以存储 2的32次方减一个数据(40多亿)

    命令

    插入一个/多个到列表头中 :lpush key value1 value2 列表长度 : llen key 在列表指定元素前/后插入数据 : linsert key before|after pivot value 为已经存在的列添加值(头部) : rpushx key value 列表中添加一个/多个值 : rpush key value1 value2 通过key+索引获取列中的数据 : lindex key index 通过key+索引范围获取列表中的数据 : lrange key start end 通过key+索引修改列表中的值 : lset key index value 根据count的值移除列表元素 : lrem key count value

    COUNT 的值可以是以下几种: count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。 count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。 count = 0 : 移除表中所有与 VALUE 相等的值。

    移除并获取第一个数据 : lpop key 移除列表最后一个数据 : rpop key 移除处在指定区域的数据 : ltrim key start stop

    Set(无序集合)

    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 每个集合可以存储 2的32次方减一个数据(40多亿)

    命令

    集合中添加成员 : sadd key value1 value2 集合成员数 : scard key 集合中所有成员 : smembers key 迭代集合中的元素** : SSCAN key cursor [MATCH pattern] [COUNT count]

    cursor - 游标 pattern - 匹配的模式 count - 指定从数据集里返回多少元素,默认值为 10

    差集 : sdiff key1 key2 差集存储在指定的集合中 : sdiffstore destination_key key1 key2 交集 : sinter key1 key2 交集存储在指定的集合中 : sinterstore destination_key key1 key2 并集 : sunion key1 key2 并集存储在指定的集合中 : sunionstore destination_key key1 key2 数据是否在集合中 :sismember key member 集合中指定数据移动得到另外一个集合 : smove source_key destination member 移除一个随机元素 : spop key 返回集合中一个或者多个随机数 : srandmember key [count] 移除集合中一个或者多个成员 : srem key member [member2]

    zset(sorted set:有序集合)

    zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 2的32次方减一(4294967295, 每个集合可存储40多亿个成员)。

    命令

    集合中添加成员 : zadd key [NX|XX] [CH] [INCR] score member [score member]

    XX: 仅仅更新存在的成员,不添加新成员。 NX: 不更新存在的成员。只添加新成员。 CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 _changed_ 的意思)。更改的元素是 新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。 INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。```

    获取成员数 : zcard key 迭代有序集合中的元素 : ZSCAN key cursor 有序集合成员的分数值 : zscore key member 指定score区间内的成员数 : zcount key min max 指定score区间内的成员数 : zcount key min max 指定区域的成员数 : ZLEXCOUNT KEY MIN MAX

    ZADD myzset 0 a 0 b 0 c 0 d 0 e ZADD myzset 0 f 0 g ZLEXCOUNT myzset - + (integer) 7 ZLEXCOUNT myzset [b [f (integer) 5

    有序集合中对指定成员的分数添加增量 : zincrby key increment member 并集并指定存储 : ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]

    ZADD zset1 1 "one" 2 "two" ZADD zset2 1 "one" 2 "two" "three" ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3 (integer) 3 ZRANGE out 0 -1 WITHSCORES 1) "one" 2) "5" 3) "three" 4) "9" 5) "two" 6) "10"

    指定集合的交集并指定存储 : ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX] 有序集中,指定区间内的成员 : ZRANGE key start stop [WITHSCORES] 字典区间返回有序集合的成员 : ZRANGEBYLEX key min max [LIMIT offset count] 有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列 : ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 指定成员的排名 : ZRANK key member 移除有序集中的一个或多个成员,不存在的成员将被忽略 : ZREM key member [member …] 移除有序集合中给定的字典区间的所有成员 : ZREMRANGEBYLEX key min max 移除有序集中,指定排名(rank)区间内的所有成员 : ZREMRANGEBYRANK key start stop 移除有序集中,指定分数(score)区间内的所有成员 : ZREMRANGEBYSCORE key min max 有序集中,指定区间内的成员 : ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定分数区间内的所有的成员。有序集成员按分数值递减(从大到小)的次序排列 : ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序 : ZREVRANK key member

    Processed: 0.008, SQL: 9