redis大纲:
key操作命令
DEL key 删除一条数据,删除成功返回1,删除失败返回0
DUMP key 将对象序列化,并返回序列化的值,不对数据进行修改
EXISTS key 检查数据是否存在,存在返回1,不存在返回0
EXPIRE key s 给key设置过期时间,时间参数类型秒
EXPIREAT key timestamp 给key设置过期时间, 时间参数类型时间戳
PEXPIRE key ms 给key设置过期时间,时间参数类型毫秒
PEXPIREAT key ms 给key设置过期时间,时间参数类型时间戳以毫秒计
KEYS reg 查找当前数据库正则匹配到的所有key
PERSIST key 移除key的过期时间
PTTL key 以毫秒的单位返回当前key剩余的过期时间
TTL key 以秒的单位返回当前key剩余的过期时间
RANDOMKEY 从当前数据库随机返回一个key
RENAME key newkey 对key重命名为newkey,如果有newkey会覆盖
RENAMENX key newkey 对key重命名为newkey,如果有newkey不会覆盖 成功返回1,失败返回0
TYPE key 返回key值的类型,如过key为空返回none
SELECT num redis默认16个库,切换到索引为num的库上
CONFIG get key 获取指定配置文件中的key的配置信息
CONFIG set key value 设置指定配置文件中的key的配置信息
DBSIZE 获得当前库中key的个数
FLUSHDB 删除当前库中所有的内容
FLUSHALL 删除所有库中所有的内容
LASTSAVE 获得最后一次同步磁盘的时间
INFO 查看当前redis配置信息
SAVE 持久化内存中的数据到磁盘上,该操作是阻塞的, 在save过程中不响应客户端请求
BGSAVE 持久化内存中的数据到磁盘上,该操作在后台执行,是异步操作, 在操作过程后仍响应客户端请求
SHUTDOWN 关闭server不是退出客户端
EXIT 退出当前客户端
QUIT 退出当前客户端
string操作命令
SET key value 添加一条数据,如果有数据会覆盖
GET key 取得一条数据,返回对应的值,如果key为空返回nil
GETRANGE key 0 1 返回key字符串的0 - 1的字符,当第二个参数为-1将返回 所有的字符,
如果key不存在,返回空字符串
GETSET key value 将key的值改为value,并且返回key之前的值
如果key不存在,返回nil,并且添加key的值为value
MGET key1 key1 获得多个key的值
SETEX key s value 创建key的值为value并且在x秒过期,会替换原数据
SETNX key value 当key不存在的时候才会创建,成功返回1,失败返回0
STRLEN key 获取key的长度
MSET k1 v1 [k2 v2] 添加多条数据,如果数据存在会覆盖
MSETNX k1 v1 [k2 v2] 添加多条数据,如果数据存在不会覆盖
SETEX key ms value 创建key的值为value并且在x毫秒秒过期,会替换原数据
INCR key 将key对应的值 +1 如果值不是数字类型会报错
INCRBY key num 将key对应的值 +n
DECR key 将key对应的值 -1
DECRBY key num 将key对应的值 -n
APPEND key value 对key对应的值在后面拼接value
list操作命令
LRANGE key 0 2 获取key集合0下标到2下标的值,如果第二个下标为-1, 则返回集合的所有值
LPUSH key value [value] 在key集合的头部添加value,如果集合不存在则创建
RPUSH key value [value] 在key集合的尾部添加value,如果集合不存在则创建
LPUSHX key value 在key集合的头部添加value,如果集合不存在则不插入
RPUSHX key value 在key集合的尾部添加value,如果集合不存在则不插入
LLEN key 获取并返回key集合的长度,如果集合为空,返回0
LPOP key 获取并弹出key集合的第一个元素
RPOP key 获取并弹出key集合的最后一个元素
BLPOP k1 [k2] s 获取并弹出key集合的第一个元素
如果集合没有元素,则会阻塞,等待超时,或者弹出元素
BRPOP k1 [k2] s 获取并弹出key集合的最后一个元素
如果集合没有元素,则会阻塞,等待超时,或者弹出元素
LINDEX key index 通过所以索引来获得key集合的元素,如果不存在返回nil
LREM key count value 移除key集合值为value的元素 如果有多个相同的value
则会移除count个,如果count为0则会移除所有的值为
value的元素,返回移除的个数,如果集合为空返回0
LSET key index value 修改key集合下标为lndex的值为value, 如果没有该下标则报错
LTRIM key 1 3 移除key集合1-3下标以外的所有元素,只保留1-3的元素
RPOPLPUSH k1 k2 移除k1集合最后一个元素,将该元素添加到k2集合并回 如果k1的值为空则返回nil
RPOPLPUSH k1 k2 s 移除k1集合最后一个元素,将该元素添加到k2集合并返回
如果k1的值为空则阻塞,等待超时,或者弹出元素
LINSERT key BEFORE|AFTER point value
在key集合的point元素之前|之后添加值为value的元素, 如果有多个值和point相同则会在第一个值
之前 | 之后添加, 如果没有值为point则会返回-1,如果添加成功返回集合度
hash操作命令
HSET key field value 在哈希表key中添加键为field值为value的字段
添加成功返回1,如果存在field返回0,并且覆盖原值
HGET key field 在哈希表key中查找键为field的字段,不存在返回nil
HGETALL key 获取哈希表key的所有的字段和值
HDEL key field1 [field2] 删除哈希表key的field1对应的值,可以删除多个, 成功返回1,失败不存在返回0
HLEN key 获取哈希表key的长度
HKEYS key 获取哈希表key的所有的键
HVALS key 获取哈希表key的所有的值
HEXISTS key field 查看哈希表key指定的field字段是否存在, 存在返回1,不存在返回0
HMGET key ld1 [ld2] 获取哈希表key的 ld1 ...对应的值,不存在返回nil
HMSET key ld1 v1 [ld2 v2] 在哈希表key中批量添加 ld1 v1...,会覆盖原值
HSETNX key field value 在哈希表key中当field不存在,添加键为field值为value的字段
HINCRBY key ld num 在哈希表key中给ld对应的整数的值向上增加num
如果字段不存在会创建,值为num, 如果存在但不是数字类型则报错
HINCRBYFLOAT key ld num 在哈希表key中给ld对应的浮点数的值向上增加num
如果字段不存在会创建,值为num, 如果存在但不是数字类型则报错
HSCAN key num [MATCH pattern] [COUNT count] 迭代哈希表key中的键值对
set操作命令
SADD key v1 [v2] 向集合key添加v1... 返回添加的条数
SCARD key 获得key集合的长度
SISMEMBER key value key集合是否包含value的值 如果有返回1,没有返回0
SMEMBERS key 获得key集合的所有的值
SMOVE k1 k2 v 将k1集合的v的值移k2集合, 移动成功返回1,没有或失败返回0
SPOP key [count] 在key集合获取并弹出一个或多个值
SRANDMEMBER key [count] 随机获得一个或多个值
SREM key v1 [v2] 移除key集合的一个或多个值,返回移除的个数
SDIFF k1 [k2] 获得k1集合与k2集合的差集,如果k2为空返回k1的所有值
如果k2不存在返回k2的所有值,如果k1不存在返回空
SDIFFSTORE newk k1 [k2] 获得k1集合与k2集合的差集,并储存在newk中, 返回添加的个数
如果k2为空将k1的所有值添加到k2,返回添加的个数
如果k2不存在将k1的所有值添加到k2,返回添加的个数
如果k1不存在返回0
SINTER k1 [k2] 获得k1集合与k2集合的交集,如果k2为空返回k1的所有值
如果k2不存在返回空,如果k1不存在返回空
SINTERSTORE newk k1 [k2] 获得k1集合与k2集合的交集,并储存在newk中
返回添加的个数,如果k1不存在返回0,如果k2为空返回0
SUNION k1 [k2] 获得k1集合与k2集合的并集,如果k2为空返回k1的所有值
如果k2不存在返回k2的所有值,如果k1不存在返回空
SUNIONSRORE newk k1 [k2] 获得k1集合与k2集合的并集,并储存在newk中, 返回添加的个数
如果k2为空将k1的所有值添加到k2,返回添加的个数
如果k2不存在将k1的所有值添加到k2,返回添加的个数
如果k1不存在返回0
SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素
zset操作命令
ZADD key s1 v1 [s1 v1] 向zest添加一条或多条数据,或者更新已存在数据的分数, 返回插入的条数
ZCARD key 获得zset的数据总数
ZCOUNT key min max 获得zset中分数在min ~ max之间的总数
ZINCRBY key num value 将zset中的value的分数增加num,返回增加之后的数据, 没有则创建
ZRANK key value 获得zset中value的索引,如果不存在返回nil
ZREVRANK key value 获得zset中value的分数排名,从大到小,如果不存在返回nil
ZSCORE key value 获得zset中value的分数,如果不存在返回nil
ZREM key v1 [v2] 删除zset中value的数据,成功返回1,失败或不存在返回0
ZRANGE key min max [WITHSCORES]
获得zset中索引在min ~ max的数据,没有则返回空
0 ~ -1是返回所有的数据,加上WITHSCORES也将分数返回
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT page num]
获得zset中分数在min ~ max的数据,没有则返回空
如果加上WITHSCORES也将分数返回
如果加上LIMIT则分页显示 page是当前页码 num是显示条数
ZREMRANGEBYRANK key min max
删除zset中分数排名 min ~ max之间的数据,返回删除的个数, 没有删除返回0
ZREMRANGEBYSCORE key min max
删除zset中分数 min ~ max之间的数据,返回删除的个数, 没有删除返回0
ZREVRANGE key min max [WITHSCORES]
获得zest中索引 min ~ max的成员,通过分数从高到低排序
如果没有返回空,加上WITHSCORES也将分数返回
ZREVRANGEBYSCORE key min max [WITHSCORES]
获得zest中分数 min ~ max的成员,通过分数从高到低排序
如果没有返回空,加上WITHSCORES也将分数返回
ZSCAN key 0 迭代有序集合中的元素包括分
注意:
1. 在生产环境中 keys flushall flushdb config save eval 这些命令最好禁用
2. 时间复杂度 O(n) 的命令一定要注意这个 n 的大小
3. 如果要删除一个非string 的 key 可以使用 ?scan 进行渐进式删除 传送
4. keys 被禁用可以使用 scan 命令来获得 key
结束
这就是我对redis命令总结篇的总结 感觉有用就点个赞吧 如果有错误或更好的方法评论区请多多指出 相互学习共同进步