Redis五种常用数据结构及操作
key操作
操作 | 注释 |
---|---|
KEYS PATTERN | 查找符合格式的Key(*代替多个字符,?代替一个字符) |
TYPE KEY | 返回KEY对应的值的类型 |
MOVE KEY DB | 把一组键值对数据移动到另一个数据库中 |
DEL KEY [KEY …] | 根据KEY进行删除,至少要指定一个KEY |
EXISTS KEY | 检查指定的KEY是否存在。指定一个KEY时,存在返回1,不存在返回0。可以指定多个,返回存在的KEY的数量 |
RANDOMKEY | 在现有的KEY中随机返回一个 |
RENAME KEY NEWKEY | 重命名一个KEY,NEWKEY不管是否是已经存在的都会执行,如果NEWKEY已经存在则会被覆盖 |
RENAMENX KEY NEWKEY | 只有在NEWKEY不存在时能够执行成功,否则失败 |
TTL KEY | 以秒为单位查看KEY还能存在多长时间 -1表示永久有效 |
EXPIRE KEY SECONDS | 给一个KEY设置在SECONDS秒后过期,过期会被Redis移除 |
PERSIST KEY | 移除过期时间,变成永久key |
String操作
操作 | 注释 |
---|---|
SET KEY VALUE [EX SECONDS] [PX MILLISECONDS] [NX|XX | 给KEY设置一个String类型的值 |
GET KEY | 根据key得到值 |
STRLEN KEY | 直接返回字符串长度 |
APPEND KEY VALUE | 把指定的value追加到KEY对应的原来的值后面,返回值是追加后字符串长度 |
INCR KEY | 自增1 |
DECR KEY | 自减1 |
INCRBY KEY INCREMENT | 原值+INCREMENT |
DECRBY KEY DECREMENT | 原值-DECREMENT |
GETRANGE KEY START END | 从字符串中取指定的一段 |
SETRANGE KEY OFFSET VALUE | 从offset开始使用VALUE进行替换 |
SETEX KEY SECONDS VALUE | 设置KEY,VALUE时指定存在秒数 |
SETNX KEY VALUE | 新建字符串类型的键值对(不存在时才能设置成功) |
MSET KEY VALUE [KEY VALUE …] | 一次性设置一组多个键值对 |
MGET KEY [KEY …] | 一次性指定多个KEY,返回它们对应的值,没有值的KEY返回值是(nil) |
MSETNX KEY VALUE [KEY VALUE …] | 一次性新建多个值 |
GETSET KEY VALUE | 设置新值,同时能够将旧值返回 |
List操作
操作 | 注释 |
---|---|
LPUSH key value [value …] | 从左边添加数据 |
RPUSH key value [value …] | 从右边添加数据 |
LRANGE key start stop | 根据list集合的索引打印元素数据正着数:0,1,2,3,…倒着数:-1,-2,-3,… |
LLEN key | list集合的长度 |
LPOP key | 从左边弹出一个元素 |
RPOP key | 从右边弹出一个元素 |
RPOPLPUSH source destination | 从source中RPOP一个元素,LPUSH到destination中 |
LINDEX key index | 根据索引从集合中取值 |
LINSERT key BEFORE | AFTER pivot value |
LPUSHX key value | 只能针对存在的list执行LPUSH |
LREM key count value | 根据count指定的数量从key对应的list中删除value |
LSET key index value | 把指定索引位置的元素替换为另一个值 |
LTRIM key start stop | 仅保留指定区间的数据,两边的数据被删除 |
Set操作
操作 | 注释 |
---|---|
SADD key member [member …] | 向set集合添加数据 |
SMEMBERS key | 查看set集合所有数据 |
SCARD key | 返回集合中元素的数量 |
SISMEMBER key member | 检查当前指定member是否是集合中的元素 |
SREM key member [member …] | 从集合中删除元素 |
SINTER key [key …] | 将指定的集合进行“交集”操作 |
SINTERSTORE destination key [key …] | 取交集后存入destinationsin |
SDIFF key [key …] | 将指定的集合执行“差集”操作 |
SUNION key [key …],SDIFFSTORE destination key [key …] | 将指定的集合执行“并集”操作 |
SUNIONSTORE destination key [key …] | 取并集后存入destinationsin |
SMOVE source destination member | 把member从source移动到destination |
SRANDMEMBER key [count] | 从集合中随机返回count个数量的元素,count不指定就返回1个 |
SPOP key [count] | 从集合中随机弹出count个数量的元素,count不指定就弹出1个 |
Hash操作
操作 | 注释 |
---|---|
HSET key field value | 添加数据 |
HGETALL key | 查询一个key的所有数据 |
HGET key field | 查询一个key对应field的数据 |
HLEN key | 查询一个key的数据个数 |
HKEYS key | 查询一个key的所有field |
HVALS key | 查询一个key的所有value |
HEXISTS key field | 判断一个key中是否存在指定的field |
HDEL key field [field …] | 删除一个key指定的field |
HINCRBY key field increment | 给一个key的某个field对应的value增加increment值 |
HMGET key field [field …] | 批量获取一个key的多个field |
HMSET key field value [field value …] | 批量添加一个key的多个field-value |
HSETNX key field value | 在字段(field)不存在时添加数据 |
ZSet操作
操作 | 注释 |
---|---|
ZADD key [NX|XX] [CH] [INCR] score member [score member …] | 添加数据 |
ZRANGE key start stop [WITHSCORES] | 在指定范围内返回数据([WITHSCORES]带上分数返回) |
ZCARD key | 查询key对应的数据个数 |
ZSCORE key member | 返回对应数据的分数 |
ZINCRBY key increment member | 给某个元素增加分数 |
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] | 在分数的指定区间内返回数据 |
ZRANK key member | 先对分数进行升序排序,返回member的排名 |
ZREVRANK key member | 先对分数进行降序排序,返回member的排名 |
ZREM key member [member …] | 删除元素 |