本文主要用作学习记录,参考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(键) 命令使用相关推荐

  1. Redis key键命令

    redis是基于key -- value 存储的 NoSQL 数据库,那么下面来看看关于key的键命令. 键命令 查找键,参数⽀持正则表达式 keys pattern 例1:查看所有键 keys * ...

  2. Redis key 相关命令

    其实本质上,Redis 就是一个Key---Value 数据库.这里我先介绍下Redis中关于的key的相关命令, 注意:key是字符串存储,但是不能使用 空格 或者 "\n",v ...

  3. redis命令---redist键命令(key)---redis字符串命令(str)

    redis键的命令 序号 命令及描述 1 DEL key 该命令用于在 key 存在时删除 key. 2 DUMP key 序列化给定 key ,并返回被序列化的值. 3 EXISTS key 检查给 ...

  4. redis+set+redom_Redis+命令参考(中文版)——Key(键)_IT168文库

    Redis 命令参考(中文版)-- Key (键) 目录 Key( 键 ) . ............................................................ ...

  5. Redis键命令(查找键、判断键值是否存在、查看键值类型、删除键值、设置过期时间、查看键值有效时间)

    [键命令对于不同数据结构类型通用] 查找键,参数⽀持正则表达式 keys pattern 例2:查看名称中包含a的键 keys a* 判断键是否存在,如果存在返回1,不存在返回0 exists key ...

  6. 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令

     Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表 ...

  7. c++ 哈希_Redis源码解析十一--Hash键实现Redis 哈希键命令实现(t_hash)

    Redis 哈希键命令实现(t_hash) 1. 哈希命令介绍 Redis 所有哈希命令如下表所示:Redis 哈希命令详解 2. 哈希类型的实现 之前在redis对象系统源码剖析和注释中提到,一个哈 ...

  8. Python操作Redis:键(Key)

    Python操作Redis:键(Key) Python的redis模块管理键(Key)方法主要实现的Redis命令包括KEYS.GET.DEL(delete).EXISTS.RANDOMKEY,TYP ...

  9. 因 Redis Key 命令不规范,导致熬了一个通宵才把Key删完了!

    来源:http://dwz.date/cmSG 前言 由于有一条业务线不理想,高层决定下架业务.对于我们技术团队而言,其对应的所有服务器资源和其他相关资源都要释放.释放了8台应用服务器: 1台es服务 ...

  10. Redis分布式锁/Redis的setnx命令如何设置key的失效时间(同时操作setnx和expire)

    Redis的setnx命令是当key不存在时设置key,但setnx不能同时完成expire设置失效时长,不能保证setnx和expire的原子性.我们可以使用set命令完成setnx和expire的 ...

最新文章

  1. Oracle ASM -- disk header
  2. while0表示什么意思_轮胎上的各种字符都表示什么意思,家用车的轮胎又该如何选择呢?...
  3. ++ 优化 频繁new_Java性能优化的50个细节,我必须分享给你!
  4. 使用XFire+Spring构建Web Service(一)——helloWorld篇
  5. 精度高、模型小、速度快!梯形DenseNets结构实现语义分割新高度!
  6. centos 卸载docker_Docker (一) 安装
  7. 【易语言界面开发系列教程之(EX_UI使用系列教程--EX组件(一键换肤))】
  8. 实现微信小程序的分享转发功能(可以从分享页返回小程序首页)
  9. 防护ddos无从下手?了解ddos原理轻松应对危机
  10. 黄巾之乱-服务器线程控制
  11. 如何实现中文汉字进行笔划(笔画)排序?
  12. 线性变换(1)——不变子空间
  13. 我的阿里巴巴图标公开库
  14. Python爬虫——下载音乐
  15. 菩提本无树 明镜亦非台
  16. 自动安装第三方库python,python第三方库自动安装脚本
  17. 迷幻的find函数用法
  18. selinux-001
  19. 云村简史:网易云音乐八年生死时速
  20. Android系统proc下查看cpuinfo的参数信息

热门文章

  1. 关于STAR法则简历
  2. Php中应用透明链路追踪工具molten如何使用?
  3. 鲁卡斯队列求黄金分割数
  4. Linux内核4.1在file_operations的read_iter和write_iter
  5. java 图片文字 乱码_关于java 向图片添加文字时的乱码问题
  6. 计算机睡眠会影响游戏挂机吗,为什么很多人玩游戏的时候会挂机?断网是其一,过来人说出大实话...
  7. 多多情报通:拼多多推广账户金额可以通用吗?里面钱可以提出来吗?
  8. 悉尼大学INFO1112Assignment1课业解析
  9. 实验吧-简单的登录题
  10. spanning tree protocol