Redis Key(键) 命令使用
本文主要用作学习记录,参考http://redisdoc.com/index.html
#dump key
序列化给定key,并返回被序列化的值
可用版本
>=2.6.0
时间复杂度
查找给定键的复杂度为 O(1) ,对键进行序列化的复杂度为 O(N*M) ,其中 N 是构成 key 的 Redis 对象的数量,而 M 则是这些对象的平均大小。
如果序列化的对象是比较小的字符串,那么复杂度为 O(1) 。
set greeting "hello,dumping world!"
dump greeting
#EXISTS key
检查给定key是否存在
可用版本
>=1.0.0
时间复杂度
O(1)
> set db redis
OK
> get db
"redis"
> exists db
(integer) 1
#EXPIRE key seconds
为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
可用版本
>=1.0.0
时间复杂度
O(1)
set cache_page 30
OK
> ttl cache_page
(integer) -1
> expire cache_page 30
(integer) 1
> ttl cache_page
(integer) 22
> ttl cache_page
(integer) 20
> exists cache_page
(integer) 0
> ttl cache_page
(integer) -2
#EXPIREAT key timestamp
EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置生存时间。
不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
可用版本:
>= 1.2.0
时间复杂度:
O(1)
> set key1 "foot"
OK
> expireat key1 1517627239
(integer) 1
> ttl key1
(integer) 39
> ttl key1
(integer) 37
#KEYS pattern
不介意使用
#MIGRATE host port key destination-db timeout [COPY][REPLACE]
将 key 原子性地从当前实例传送到目标实例的指定数据库上,一旦传送成功, key 保证会出现在目标实例上,而当前实例上的 key 会被删除。
这个命令是一个原子操作,它在执行的时候会阻塞进行迁移的两个实例,直到以下任意结果发生:迁移成功,迁移失败,等待超时。
可选项:
COPY :不移除源实例上的 key 。
REPLACE :替换目标实例上已存在的 key 。
可用版本:
>= 2.6.0
时间复杂度:
这个命令在源实例上实际执行 DUMP 命令和 DEL 命令,在目标实例执行 RESTORE 命令,查看以上命令的文档可以看到详细的复杂度说明。
key 数据在两个实例之间传输的复杂度为 O(N) 。
> set key1 jenkin1
OK
> migrate 10.16.46.192 8008 key1 1000 COPY
(error) ERR value is not an integer or out of range
> migrate 10.16.46.192 8008 key1 0 1000 COPY
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8008 key1 0 1000 COPY
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8008 key1 0 1000
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8008 key1 0 1000 COPY REPLACE
(error) ERR Target instance replied with error: MOVED 9189 10.16.46.192:8018
> migrate 10.16.46.192 8018 key1 0 1000 COPY REPLACE
OK
> set leofu caiji
-> Redirected to slot [3972] located at 10.16.46.172:8009
OK
> migrate 10.16.46.192 8018 leofu 0 1000 COPY REPLACE
OK
> get leofu
"caiji"
10.16.46.172:8009> select 1
(error) ERR SELECT is not allowed in cluster mode
10.16.46.172:8009> migrate 10.16.46.192 8018 key1 0 1000 COPY REPLACE
#OBJECT
OBJECT subcommand [arguments [arguments]]
OBJECT 命令允许从内部察看给定 key 的 Redis 对象。
它通常用在除错(debugging)或者了解为了节省空间而对 key 使用特殊编码的情况。
当将Redis用作缓存程序时,你也可以通过 OBJECT 命令中的信息,决定 key 的驱逐策略(eviction policies)。
OBJECT 命令有多个子命令:
OBJECT REFCOUNT <key> 返回给定 key 引用所储存的值的次数。此命令主要用于除错。
OBJECT ENCODING <key> 返回给定 key 锁储存的值所使用的内部表示(representation)。
OBJECT IDLETIME <key> 返回给定 key 自储存以来的空闲时间(idle, 没有被读取也没有被写入),以秒为单位。
可用版本:
>= 2.2.3
时间复杂度:
O(1)
> object refcount key1
(integer) 1
10.16.46.172:8010> object idletime key1
(integer) 248
10.16.46.172:8010> object idletime key1
(integer) 252
10.16.46.172:8010> object encoding key1
"embstr"
>persist key
移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )。
可用版本:
>= 2.2.0
时间复杂度:
O(1)
10.16.46.172:8010> set mykey hello
-> Redirected to slot [14687] located at 10.16.46.171:8008
OK
10.16.46.171:8008> expire mykey 100
(integer) 1
10.16.46.171:8008> ttl mykey
(integer) 95
10.16.46.171:8008> persist mykey
(integer) 1
10.16.46.171:8008> ttl mykey
(integer) -1
>PEXPIRE key milliseconds
这个命令和EXPIRE命令的作用类似,但是它以毫秒为单位设置key的生存时间,而不像EXPIRE命令那样,以秒为单位。
可用版本:
>=2.6.0
时间复杂度:
O(1)
10.16.46.171:8008> set mykey hello
OK
10.16.46.171:8008> pexpire mykey 20000
(integer) 1
10.16.46.171:8008> ttl mykey
(integer) 13
10.16.46.171:8008> pttl mykey
(integer) 8971
>PEXPIREAT
同上
>PTTL
上面已经使用
>RANDOMKEY
从当前数据库中随机返回(不删除)一个 key 。
可用版本:
>= 1.0.0
时间复杂度:
O(1)
10.16.46.171:8008> randomkey
"itemService_itemPricingByType|75-978-466|-3"
10.16.46.171:8008> randomkey
"itemService_itemPricingByType|81-523-06
>RENAME key newKey
将 key 改名为 newkey 。
当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。
当 newkey 已经存在时, RENAME 命令将覆盖旧值。
可用版本:
>= 1.0.0
时间复杂度:
O(1)
>RENAMENX key newkey
当且仅当 newkey 不存在时,将 key 改名为 newkey 。
当 key 不存在时,返回一个错误。
可用版本:
>= 1.0.0
时间复杂度:
O(1)
>RESTORE key ttl serialized-value [REPLACE]
10.16.46.173:8029> get key1
-> Redirected to slot [9189] located at 10.16.46.172:8010
"jenkin1"
10.16.46.172:8010> restore key1 0 "\x00\xc0{\x06\x00\xde\x0f;a\xf5/[*" REPLACE
OK
10.16.46.172:8010> get key1
"123"
>SORT
sort key [by pattern][limit offset count][get pattern [get pattern ...]] [ASC|DESC][ALPHA][STORE destination]
返回或保存给定列表、集合、有序集合key中经过排序的元素。
排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较
一般sort用法
> lpush today_cost 30 1.5 10 8
(integer) 4
> sort today_cost
1) "1.5"
2) "8"
3) "10"
4) "30"
> sort today_cost desc
1) "30"
2) "10"
3) "8"
4) "1.5"
使用aplha修饰符对字符串进行排序
10.16.46.171:8008> lpush website "www.reddit.com"
(integer) 1
10.16.46.171:8008> lpush website "www.reddit.com1"
(integer) 2
10.16.46.171:8008> sort website alpha
1) "www.reddit.com"
2) "www.reddit.com1"
使用limit修饰符限制返回结果
10.16.46.172:8010> rpush rank 1 3 5 77 9
-> Redirected to slot [13998] located at 10.16.46.171:8008
(integer) 5
10.16.46.171:8008> rpush rank 2 4 6 8 10
(integer) 10
10.16.46.171:8008> sort rank
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "8"
8) "9"
9) "10"
10) "77"
10.16.46.171:8008> sort rank limit 0 5
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
>TTL
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
Redis Key(键) 命令使用相关推荐
- Redis key键命令
redis是基于key -- value 存储的 NoSQL 数据库,那么下面来看看关于key的键命令. 键命令 查找键,参数⽀持正则表达式 keys pattern 例1:查看所有键 keys * ...
- Redis key 相关命令
其实本质上,Redis 就是一个Key---Value 数据库.这里我先介绍下Redis中关于的key的相关命令, 注意:key是字符串存储,但是不能使用 空格 或者 "\n",v ...
- redis命令---redist键命令(key)---redis字符串命令(str)
redis键的命令 序号 命令及描述 1 DEL key 该命令用于在 key 存在时删除 key. 2 DUMP key 序列化给定 key ,并返回被序列化的值. 3 EXISTS key 检查给 ...
- redis+set+redom_Redis+命令参考(中文版)——Key(键)_IT168文库
Redis 命令参考(中文版)-- Key (键) 目录 Key( 键 ) . ............................................................ ...
- Redis键命令(查找键、判断键值是否存在、查看键值类型、删除键值、设置过期时间、查看键值有效时间)
[键命令对于不同数据结构类型通用] 查找键,参数⽀持正则表达式 keys pattern 例2:查看名称中包含a的键 keys a* 判断键是否存在,如果存在返回1,不存在返回0 exists key ...
- 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令
Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表 ...
- c++ 哈希_Redis源码解析十一--Hash键实现Redis 哈希键命令实现(t_hash)
Redis 哈希键命令实现(t_hash) 1. 哈希命令介绍 Redis 所有哈希命令如下表所示:Redis 哈希命令详解 2. 哈希类型的实现 之前在redis对象系统源码剖析和注释中提到,一个哈 ...
- Python操作Redis:键(Key)
Python操作Redis:键(Key) Python的redis模块管理键(Key)方法主要实现的Redis命令包括KEYS.GET.DEL(delete).EXISTS.RANDOMKEY,TYP ...
- 因 Redis Key 命令不规范,导致熬了一个通宵才把Key删完了!
来源:http://dwz.date/cmSG 前言 由于有一条业务线不理想,高层决定下架业务.对于我们技术团队而言,其对应的所有服务器资源和其他相关资源都要释放.释放了8台应用服务器: 1台es服务 ...
- Redis分布式锁/Redis的setnx命令如何设置key的失效时间(同时操作setnx和expire)
Redis的setnx命令是当key不存在时设置key,但setnx不能同时完成expire设置失效时长,不能保证setnx和expire的原子性.我们可以使用set命令完成setnx和expire的 ...
最新文章
- Oracle ASM -- disk header
- while0表示什么意思_轮胎上的各种字符都表示什么意思,家用车的轮胎又该如何选择呢?...
- ++ 优化 频繁new_Java性能优化的50个细节,我必须分享给你!
- 使用XFire+Spring构建Web Service(一)——helloWorld篇
- 精度高、模型小、速度快!梯形DenseNets结构实现语义分割新高度!
- centos 卸载docker_Docker (一) 安装
- 【易语言界面开发系列教程之(EX_UI使用系列教程--EX组件(一键换肤))】
- 实现微信小程序的分享转发功能(可以从分享页返回小程序首页)
- 防护ddos无从下手?了解ddos原理轻松应对危机
- 黄巾之乱-服务器线程控制
- 如何实现中文汉字进行笔划(笔画)排序?
- 线性变换(1)——不变子空间
- 我的阿里巴巴图标公开库
- Python爬虫——下载音乐
- 菩提本无树 明镜亦非台
- 自动安装第三方库python,python第三方库自动安装脚本
- 迷幻的find函数用法
- selinux-001
- 云村简史:网易云音乐八年生死时速
- Android系统proc下查看cpuinfo的参数信息
热门文章
- 关于STAR法则简历
- Php中应用透明链路追踪工具molten如何使用?
- 鲁卡斯队列求黄金分割数
- Linux内核4.1在file_operations的read_iter和write_iter
- java 图片文字 乱码_关于java 向图片添加文字时的乱码问题
- 计算机睡眠会影响游戏挂机吗,为什么很多人玩游戏的时候会挂机?断网是其一,过来人说出大实话...
- 多多情报通:拼多多推广账户金额可以通用吗?里面钱可以提出来吗?
- 悉尼大学INFO1112Assignment1课业解析
- 实验吧-简单的登录题
- spanning tree protocol