@Redis keys 命令
DEL key | 删除key |
EXISTS key | 检查给定 key 是否存在 |
EXPIRE key seconds | 为给定 key 设置过期时间 |
EXPIREAT key timestamp | 为给定 key 设置过期时间,接受 unix timestamp |
KEYS pattern | 查找所有符合给定模式( pattern)的 key,如 KEYS test* |
MOVE key db | 将当前数据库的key 移动到给定的数据库db |
PERSIST key | 移除key 的过期时间,key将持久保持 |
TTL key | 以秒为单位,返回给定 key的剩余生存时间 |
RANDOMKEY | 从当前数据库中随机返回一个 key |
RENAME key newkey | 修改 key的名称,newkey存在时将覆盖旧值 |
RENAMENX key newkey | 仅当 newkey 不存在时,将 key 改名为 newkey |
TYPE key | 返回 key 所储存的值的类型 |
@Redis 字符串命令
STRLEN key | 返回 key 所储存的字符串值的长度 | |
GET key | 获取指定 key 的值 | |
GETRANGE key start end | 返回 key 中字符串值的子字符 | redis 127.0.0.1:6379> SET mykey "This is my test key" OK redis 127.0.0.1:6379> GETRANGE mykey 0 3 "This" redis 127.0.0.1:6379> GETRANGE mykey 0 -1 "This is my test key" |
GETSET key value | 将给定 key 的值设为 value,并返回 key 的旧值(old value), 没有旧值返回 nil | |
MGET key1 [key2..] | 获取所有给定 key 的值,不存在的key返回nil | |
SET key value | 设置指定 key 的值 | |
SETNX key value | 只有在 key 不存在时设置值 | |
SETEX key seconds value | 为指定的 key 设置值及其过期时间, 如果 key 已经存在覆盖旧值 | |
SETRANGE key offset value | 用 value 参数覆写给定 key 的值,从偏移量 offset 开始 | redis 127.0.0.1:6379> SET key1 "Hello World" OK redis 127.0.0.1:6379> SETRANGE key1 6 "Redis" (integer) 11 redis 127.0.0.1:6379> GET key1 "Hello Redis" |
MSET key value [key value ...] | 同时设置一个或多个 key-value 对 | |
MSETNX key value [key value ...] | 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在 | |
INCR key | 将 key中储存的数字值加一 | |
INCRBY key increment | 将 key中储存的值加上给定的增量值 | |
INCRBYFLOAT key increment | 将 key中储存的值加上给定的浮点增量值 | |
DECR key | 将 key 中储存的数字值减一 | |
DECRBY key decrement | 将key 中储存的值减去给定的减量值 | |
APPEND key value | 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值的末尾 | redis> EXISTS myphone (integer) 0 redis> APPEND myphone "iPhone" (integer) 6 # 字符长度 redis> APPEND myphone " X" (integer) 8 redis> GET myphone "iPhone X" |
@Redis hash命令
HDEL key field1 [field2] | 删除一个或多个哈希表字段 |
HLEN key | 获取哈希表中字段的数量 |
HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在 |
HKEYS key | 获取所有哈希表中的字段 |
HVALS key | 获取哈希表中所有值 |
HGETALL key | 获取在哈希表中指定 key 的所有字段和值 |
HGET key field | 获取存储在哈希表中指定字段的值 |
HMGET key field1 [field2] | 获取所有给定字段的值 |
HSET key field value | 将哈希表 key 中的字段 field 的值设为 value |
HMSET key field1 value1 [field2 value2 ] | 同时将多个 field-value (域-值)对设置到哈希表 key 中 |
HSETNX key field value | 只有在字段 field 不存在时,设置哈希表字段的值 |
HINCRBY key field increment | 为哈希表 key 中的指定字段的整数值加上增量 increment |
HINCRBYFLOAT key field increment | 为哈希表 key 中的指定字段的浮点数值加上增量 increment |
@Redis列表命令
LLEN key |
|
LINDEX key index 通过索引获取列表中的元素 |
|
LRANGE key start stop 获取列表指定范围内的元素 |
|
LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素 |
|
LSET key index value 通过索引设置列表元素的值 |
|
LTRIM key start stop 对一个列表进行修剪,只保留指定区间内的元素 |
|
LREM key count value 移除列表元素 count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。 count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。 count = 0 : 移除表中所有与 VALUE 相等的值。 |
|
LPOP key 移出并获取列表的第一个元素 |
RPOP key 移除列表的最后一个元素,返回值为移除的元素。 |
LPUSH key value1 [value2] 将一个或多个值插入到列表头部 |
RPUSH key value1 [value2] 在列表中添加一个或多个值 |
LPUSHX key value 将一个值插入到已存在的列表头部 |
RPUSHX key value 为已存在的列表添加值 |
RPOPLPUSH source destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
|
BRPOPLPUSH source destination timeout |
@Redis集合命令
SCARD key | 获取集合的成员数 |
SMEMBERS key | 返回集合中的所有成员 |
SISMEMBER key member | 判断 member 元素是否是集合 key 的成员 |
SADD key member1 [member2] | 向集合添加一个或多个成员 |
SMOVE source destination member | 将 member 元素从 source 集合移动到 destination 集合 |
SPOP key | 移除并返回集合中的一个随机元素 |
SREM key member1 [member2] | 移除集合中一个或多个成员 |
SDIFF key1 [key2] | 返回给定所有集合的差集 |
SDIFFSTORE destination key1 [key2] | 返回给定所有集合的差集并存储在 destination 中 |
SINTER key1 [key2] | 返回给定所有集合的交集 |
SINTERSTORE destination key1 [key2] | 返回给定所有集合的交集并存储在 destination 中 |
SUNION key1 [key2] | 返回所有给定集合的并集 |
SUNIONSTORE destination key1 [key2] | 返回所有给定集合的并集存储在 destination 集合中 |
@Redis有序集合命令
ZADD key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZCARD key | 获取有序集合的成员数 |
ZCOUNT key min max | 计算在有序集合中指定区间(闭区间)分数的成员数 |
ZSCORE key member | 返回有序集中,成员的分数值 |
ZINCRBY key increment member | 有序集合中对指定成员的分数加上增量 increment |
ZINTERSTORE destination numkeys key [key ...] | 计算给定有序集的交集,并将结果集储存到 destination,numkeys 指定 key 的数量 默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和 |
ZUNIONSTORE destination numkeys key [key ...] | 计算给定的一个或多个有序集的并集,并存储到 destination |
ZRANGE key start stop [WITHSCORES] | 通过索引区间返回有序集合指定区间内的成员 以 0 表示有序集第一个成员,以 -1 表示最后一个成员 值递减(从大到小)来排列使用 ZREVRANGE 命令 > ZRANGE salary 0 -1 WITHSCORES 1) "jack" 2) 3000.0 3) "tom" 4) 5000.0 > ZRANGE salary 0 -1 1) "jack" 2) "tom" |
ZREVRANGE key start stop [WITHSCORES] | 返回有序集中指定区间内的成员,通过索引,分数从高到低 |
ZRANK key member | 返回有序集合中指定成员的索引(按升序排) |
ZREVRANK key member | 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 |
ZRANGEBYSCORE key min max [WITHSCORES] | 通过分数返回有序集合指定区间内的成员 https://www.runoob.com/redis/sorted-sets-zrangebyscore.html |
ZREVRANGEBYSCORE key max min [WITHSCORES] | 返回有序集中指定分数区间内的成员,分数从高到低排序 |
ZREM key member [member ...] | 移除有序集合中的一个或多个成员 |
ZREMRANGEBYRANK key start stop | 移除有序集合中给定的排名区间的所有成员 |
ZREMRANGEBYLEX key min max | 移除有序集合中给定的字典区间的所有成员 |
ZLEXCOUNT key min max | 在有序集合中计算指定字典区间内成员数量(前提可能是分数值相同?或者排好序?) |
ZRANGEBYLEX key min max | 通过字典区间返回有序集合的成员 |
@使用场景
1)字符串
计数器应用
2)列表
取最新N个数据的操作
消息队列
文章列表
3)集合
利用唯一性,可以统计访问网站的所有IP
实时系统,反垃圾系统
共同好友,二度好友
好友推荐的时候,根据tag求交集,大于某个阈值推荐
4)哈希
存储、读取、修改用户属性
5)有序集合
排行榜应用,取TOP N操作
需要精准设定过期时间应用(时间戳作为Score)
带有权重的元素,如游戏的用户得分排行榜 参考 -> 使用Redis实现实时排名 https://www.jianshu.com/p/2cbf358b933b
过期项目处理,按照时间排序
Redis在线命令工具 -> http://try.redis.io/
参考资料:
菜鸟教程Redis命令 https://www.runoob.com/redis/redis-sorted-sets.html
redis有序集合性能 列表、集合、有序集合 https://www.cnblogs.com/makai/p/11360938.html
Redis(二):Redis的九大应用场景 https://www.cnblogs.com/shamo89/p/6776300.html