在线测试redis命令网址
https://try.redis.io/?_ga=2.122075523.965010314.1594890063-693923878.1594798892
Redis命令
启动命令
redis-server
连接命令
redis-cli
该命令会连接本地的 redis 服务
redis-cli -h host -p port -a password
该命令可连接远程redis服务
注意 远程连接redis服务时远程redis服务配置bind需要注释
如果出现乱码情况使用一下命令连接
redis-cli --raw
Redis 键(key)
命令 | 描述 | 测试 |
---|---|---|
del key_name | 删除某个key成功返回1失败返回0 | |
dump key_name | 序列化给定 key ,并返回被序列化的值 | |
exists key_name | key 是否存在 | |
EXPIRE key seconds | key 设置过期时间,以秒计 | |
EXPIREAT key timestamp | EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳 | |
PEXPIRE key milliseconds | key 的过期时间以毫秒计 | |
PEXPIREAT key milliseconds-timestamp | 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 | |
KEYS pattern | 查看key的列表 | |
PERSIST key | 移除 key 的过期时间,key 将持久保持 | |
PTTL key | 以毫秒为单位返回 key 的剩余的过期时间 | |
TTL key | 以秒为单位,返回给定 key 的剩余生存时间 | |
TYPE key | 返回 key 所储存的值的类型 |
Redis 字符串(String)
命令 | 描述 |
---|---|
SET key value | 指定key的值 |
get key | 获得key的值 |
GETSET key value | key 的值设为 value ,并返回 key 的旧值 |
SETEX key seconds value | 将值 value 关联到 key ,并将 key 的过期时间设为 seconds |
SETNX key value | 只有在 key 不存在时设置 key 的值 |
只列出几个常用的其他的略
Redis 哈希(Hash)
命令 | 描述 |
---|---|
HDEL key field1 [field2] | 删除一个或多个哈希表字段 |
HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在 |
HGET key field | 获取存储在哈希表中指定字段的值 |
HGETALL key | 获取在哈希表中指定 key 的所有字段和值 |
HKEYS key | 获取所有哈希表中的字段 |
HMSET key field1 value1 [field2 value2 ] | 同时将多个 field-value (域-值)对设置到哈希表 key 中 |
HSET key field value | 将哈希表 key 中的字段 field 的值设为 value |
HSETNX key field value | 只有在字段 field 不存在时,设置哈希表字段的值 |
Redis 列表(List)
命令 | 描述 | 测试 |
---|---|---|
BRPOP key1 [key2 ] timeout | 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 | |
blpop | 和上面一致只不过是第一个元素 | |
LINDEX key index | 通过索引获取列表中的元素 | |
LPUSH key value1 [value2] | 将一个或多个值插入到列表头部 | |
rpush | 与上面一致插入尾部 | |
lpushx key value1 [value2] | 往已存在的列表插入数据不存在则返回0 | |
LLEN key | 获取列表长度 | |
LRANGE key start stop | 获取列表指定范围内的元素 | |
LSET key index value | 通过索引设置列表元素的值 |
列表命令中L 和R分开代表头部和尾部
Redis 集合(Set)
命令 | 描述 | 测试 |
---|---|---|
SADD key member1 [member2] | 向集合添加一个或多个成员 | |
SDIFF key1 [key2] | 返回给定所有集合的差集 | |
SDIFFSTORE res key1 [key2] | 返回给定所有集合的差集并存储在 res 中 | |
SINTER key1 [key2] | 返回给定所有集合的交集 | |
SINTERSTORE res1 key1 [key2] | 返回给定所有集合的交集并存储在 res1 中 | |
SISMEMBER key member | 判断 member 元素是否是集合 key 的成员 | |
SMEMBERS key | 返回集合所有成员 | |
SUNION key1 [key2] | 得到集合并集 | |
SUNIONSTORE res2 key1 [key2] | 得到并集并存到res2中 |
Redis 有序集合(sorted set)
我只选了几个我自己常用的命令
命令 | 描述 | 测试 |
---|---|---|
ZADD key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 | |
ZREM key member [member …] | 移除某个成员 | |
ZRANGE key start stop [WITHSCORES] | 返回分数升序前几名成员 | |
ZRANK key member | 升序返回成员排名 | |
ZREVRANK key member | 降序返回成员排名 |
其实在redis sorted sets里面当items内容大于64的时候同时使用了hash和skiplist两种设计实现。这也会为了排序和查找性能做的优化。所以如上可知:
添加和删除都需要修改skiplist,所以复杂度为O(log(n))。
但是如果仅仅是查找元素的话可以直接使用hash,其复杂度为O(1)
其他的range操作复杂度一般为O(log(n))
当然如果是小于64的时候,因为是采用了ziplist的设计,其时间复杂度为O(n)
其他
本人QQ:806751350
github地址:https://github.com/linminlm