Redis 五大数据类型(总结表)

前言

  • redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合)
  • 理解每种数据类型的特点对于redis的开发和运维非常重要

mark

 一、String-字符串对象

命令 应用 描述
EXISTE EXISTS mykey 判断该键是否存在,存在返回1,否则返回0
APPEND APPEND mykey “hello” 若该键并不存在,则创建key,存在则将内容追加,append命令返回当前Value的长度
GET GET mykey 通过get命令获取该键,以判断append的结果
SET SET mykey “this is mykey” 通过set命令为键设置新值,并覆盖原有值,若为字符串需要加双引号或单引号
STRLEN STRLEN mykey 获取指定Key的字符长度,等效于C库中strlen函数
INCR INCR mykey 该Key的值递增1
DECR DECR mykey 该Key的值递减1
DEL DEL mykey 删除已有键
INCRBY INCRBY mykey 10 指定增加的整数
DECRBY DECRBY mykey 10 指定减少的整数
GETSET GETSET mycounter 0 在设置新值得同时,并返回原有值,这两个操作原子性的同时完成
SETEX SETEX mykey 10 “hello world!” 设置指定Key的过期时间为10秒
TTL TTL mykey 通过ttl命令查看一下指定Key的剩余存活时间(秒数),0表示已经过期,-1(-2)表示永不过期
SETNX SETNX mykey “hello” 该键并不存在,因此该命令执行成功,存在则不执行命令
SETRANGE SETRANGE mykey 6 dd 从第六个字节开始替换2个字节
GETRANGE GETRANGE mykey 1 2 截取该键的Value,从第一个字节开始,到第二个字节结束
MSET MSET key1 “hello” key2 “world” 批量设置了key1和key2两个键,如果有旧值会被新值覆盖
MGET MGET key1 key2 批量获取了key1和key2两个键的值
MSETNX MSETNX key2 “hello” key3 “world” 批量设置了key2和key3两个键,但是key2已经存在,所以该命令执行失败并返回0

二、List-列表对象

命令 应用 描述
LPUSH LPUSH cloud a b c d 创建该键及与其关联的List,之后在将参数中的values从左到右依次插入到表头
LPUSHX LPUSHX cloud e 仅当key存在时,将value值插入表头
LRANGE LRANGE cloud 0 -1 返回列表中指定区间内的元素,0表示第一个元素,1表示第二个元素,-1表示最后一个元素
LPOP LPOP cloud 移除并返回第一个元素,从头开始
LIEN LLEN cloud 查看列表中元素个数
LREM LREM cloud 2 b 从头部(left)向尾部(right)变量链表,删除2个值等于b的元素,返回值为实际删除的数量
LSET LSET cloud 1 b 将索引值为1的元素值设置为新值b
LINDEX LINDEX cloud 1 获取索引值为1的元素值
LTRIM LTRIM cloud 0 2 仅保留索引值0到2的元素
LINSERT LINSERT could before/after a 0 #在元素a之前/之后插入新元素0
RPUSH RPUSH key1 a b c d e 将值从左往右依次插入到表尾
RPUSHX RPUSHX key2 f 指定键存在时执行,否则不执行
RPOP RPOP key1 移除并返回键的第一个元素,从尾开始
RPOPLPUSH RPOPLPUSH key1 key2 将键1尾部元素xxx弹出,同时再插入到键2的头部(原子性的完成这两步操作)

三、Hash-哈希对象

命令 应用 描述
HEST HSET hash field1 a field2 b field3 c 给hash键创建三个字段及对应字段值
HGET HGET hash field1 获取hash键,字段为field1的值
HDEL HDEL hash field2 删除hash键,字段为field2的值,成功返回1
HEXISTS HEXISTS hash field2 判断hash键中字段为field2的值是否存在,存在返回1
HLEN HLEN hash 获取hash键的字段数量
HSETNX HSETNX hash1 field3 z 给hash1键添加新字段field3,值为z,是否执行基于此字段是否存在,不管键是否存在,返回1表示执行成功
HINCRBY HINCRBY hash3 field1 1 给hash3键的field1字段值加1
HGETALL HGETALL hash1 返回hash1键的所有字段及其值,是逐对列出的
HKEYS HKEYS hash1 仅获取hash1键中所有字段名
HVALS HVALS hash1 仅获取hash1键中所有字段值
HMSET HMSET hash4 field1 hello field2 world 批量为xxx键创建字段和赋值
HMGET HMGET hash4 field1 field2 获取指定多个字段值

四、Set-集合对象

命令 应用 描述
SADD SADD myset a b c d e 将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略,假如集合key不存在,则创建一个只包含添加的元素作成员的集合
SMEMBERS SMEMBERS myset 查看插入的结果,输出的顺序与插入顺序无关
SCARD SCARD myset 获取集合中成员的数量
SISMEMBER SISMEMBER myset d 判断键中成员是否存在,返回0表示不存在,1表示存在
SPOP SPOP myset 随机的移除并返回键中的某一成员
SREM SREM myset a b e 从键中移出a/b/e,并返回移除成员个数,a/e刚已被移除了,所以返回1
SRANDMEMBER SRANDMEMBER myset 该命令随机的返回某一成员
SMOVE SMOVE myset myset1 c 将键myset的c成员移到键myset1,成功返回1,失败返回0

五、Zset-有序集合对象

命令 应用 描述
ZADD ZADD zset 1 a 2 b 3 c 4 d 5 e 将一个或多个成员元素及其分数值加入到有序集当中
ZRANK ZRANGE zset 0 -1 (withscores) 查看所有成员(及对应分数)
ZCARD ZCARD zset 获取键中成员的数量
ZRANK ZRANK zset e 获取成员的位置索引值
ZCOUNT ZCOUNT zset 2 4 获取分数满足表达式[x <= score <= x]的成员的数量
ZREM ZREM zset a b 删除成员,返回实际删除成员的数量
ZSCORE ZSCORE zset d 获取成员的分数
ZINCRBY ZINCRBY zset 2 a 若成员不存在,则zincrby命令将添加该成员分数为2(并假设其初始分数为0)
ZRANGEBYSCORE ZRANGEBYSCORE zset 2 4 获取分数满足表达式[x <= score <= x]的成员,即 2 3 4
ZREMRRANGEBYSCORE ZREMRANGEBYSCORE zset 1 3(ZRANGEBYSCORE zset -inf +inf limit 2 3) 删除分数满足表达式[x <= score <= x]的成员,并返回实际删除的数量(-inf和+inf表示第一个和最后一个成员,limit 2 3表示索引为2开始的三个成员)
ZREMRANGEBYRANK ZREMRANGEBYRANK zset 1 2 删除位置索引满足表达式[x <= rank <= x]的成员,即(0d、1e,删除1和2索引值,结果只删了1e)
ZREVRANGE ZREVRANGE zset 0 -1 以位置索引从高到低的方式获取并返回此区间内的成员
ZREVRANGEBYSCORE ZREVRANGEBYSCORE zset 5 3 获取分数满足表达式[x >= score >= x]的成员,并以从高到底的顺序输出
ZREVRANK ZREVRANK zset a 获取成员索引,该用法是是反向索引排序
REVRANKzset a获取成员索引,该用法是是反向索引排序 zset a 获取成员索引,该用法是是反向索引排序

Guess you like

Origin blog.csdn.net/Arlssaze/article/details/121273621