前言
- redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合)
- 理解每种数据类型的特点对于redis的开发和运维非常重要
一、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 | 获取成员索引,该用法是是反向索引排序 |