参考:http://doc.redisfans.com/

del key

  删除给定的一个或多个Key(多个key用空格隔开),删除成功返回1,当key不存在时,返回0;例:del no-exist-key foo。

dump key

  序列化给定的key,并返回被序列化的值,使用restore可以反序列化;例:dump foo。

exists key 

  检查key是否存在,若key存在返回1,否则返回0;例:exists foo。

expire key seconds

  为key设置超时时间(单位:秒),当key过期时,会被系统自动删除;例:expire foo 30。

expireat key timestamp

  为key设置超时时间(单位:秒),和expire不同的是其接受的时间参数是Unix时间戳;例:expireat foo 1355292000。

keys pattern

  查找所有符合给定模式的key,通常用于查找key;例:keys* 匹配所有的key、keys h?llo匹配hello、hallo;h*llo匹配hallo和heeeello;h[ea]llo匹配hello和hallo,但不匹配hillo。

migrate host port key destination-db timeout [copy] [replace]

  将key原子性的传送到指定数据库上,传送成功后,本地的key会被删除;例:migrate 127.0.0.1 6340 foo 0 100。

move key db

  将key移动到指定数据库中;例:move foo 1,将foo从db0移动到db1,移动陈工返回1,移动失败返回0。

object subcommand[agruments[arguments]]

  object允许从内部查看给定Key的Redis对象,通常用于拍错或节省空间而对key使用特殊编码:

  • OBJECT REFCOUNT <key> 返回给定 key 引用所储存的值的次数。此命令主要用于除错;例:object refcount foo。
  • OBJECT ENCODING <key> 返回给定 key 锁储存的值所使用的内部表示(representation);例:object encoding foo。
  • OBJECT IDLETIME <key> 返回给定 key 自储存以来的空转时间(idle, 没有被读取也没有被写入),以秒为单位;例:object idletime foo。

persist key

  移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;例:persist foo。

pexpire key millseconds

  这个命令和expire类似,但是它是以毫秒为单位设置key的生存时间,而不像expire命令那样,以秒为单位;例:pexpire foo 30000。

pexpireat key millseconds-timestamp

  这个命令和expireat类似,但是它是以毫秒为单位设置key的生存时间,而不像expireat命令那样,以秒为单位;例:pexpireat foo 1478007195543

pttl key

  这个命令和ttl类似,它以毫秒为单位返回key的剩余生存时间,而不像ttl命令那样,以秒为单位;当key不存在时返回-2,当key存在但没有设置剩余时间时返回-1;例:pptl foo。

randomkey

  从数据库中随机返回一个key,若数据库为空则返回nil;例:randomkey。

rename key newkey

  为key改名,当key和newkey相同或者key不存在时返回一个错误,当newkey已存在时则会覆盖newkey中的值;例:rename foo foo1。

renamenx key newkey

  当且仅当newkey不存在时将key改为newkey,若key不存在返回错误,若newkey存在返回0;例:renamex foo foo1。

restore key ttl serialized-value

  反序列化给定的序列化值,并将它和给定的key关联;例: RESTORE greeting-again 0 "\x00\x15hello, dumping world!\x06\x00E\xa0Z\x82\xd8r\xc1\xde"(看别人的例子吧,说实话到现在除了做迁移验证兼容性之外我还没想到它的其他用处)。

sort key [by pattern] [limit offset count] [get pattern [get pattern ...]] [asc(default) | desc] [alpha] [store destination]

  返回或保存给定列表、集合、有序集合中经过排序的元素:
  最常用用法:sort key返回从小到大的排列;例:lpush day 1 2 3 5 79 18 | sort day。
  sort默认排序对象为数字,当需要对字符串进行排序时,需要显示的在sort命令之后添加alpha修饰符;例:lpush name tom lilei hanmeimei unclewang| sort name alpha。
  排序后返回元素的数量可以通过limit修饰符进行限制,修饰符接受offset和count两个参数;例:lpush day 1 2 3 5 79 18 | sort day limit 1 3返回2、3、5三个元素。
  还有一些更为详细的用法请参见:http://doc.redisfans.com/key/sort.html

ttl key

  以秒为单位返回key的剩余生存时间(time to live),当key不存在时返回-2,当key存在未设置生存时间时返回-1;例:ttl foo。

type key

  返回key存储的值的类型,返回none(不存在)、string(字符串)、list(列表)、set(集合)、zset(有序集合)、hash(哈希表);例:type foo。

scan cursor [match pattern][count count]

  scan命令及其相关的sscan、hscan和zscan都用于增量迭代元素,其中:

  • scan命令用于迭代当前数据库中的键,返回的每个元素都是一个数据库键;例:scan 0。
  • sscan命令用于迭代集合键中的元素,返回的每个元素都是一个集合成员。
  • hscan命令用于迭代哈希键中的键值对,返回的每个元素都是一个键值对。
  • zscan命令用于迭代有序集合中的元素,返回的每个元素都是一个有序集合元素,由一个成员和一个分值(score)组成。

SSCAN 命令、 HSCAN 命令和 ZSCAN 命令的第一个参数总是一个数据库键,而SCAN 命令则不需要在第一个参数提供任何数据库键 —— 因为它迭代的是当前数据库中的所有数据库键。
  因为当keys和smembers用于生产环境处理大的数据库或者集合时可能会阻塞服务器达数秒之久,而每次执行只会返回少量元素避免了可以用于生产环境,但是由于迭代过程中,键有可能会被更改,所以只能提供有限保证。
scan命令是基于游标的:当scan命令每次被调用时,都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为参数,延续之前的迭代,例:
scan 0 :当scan命令的游标为0时,服务器开始新的迭代,当服务器返回值为0的游标时,表示迭代结束,本例返回结果如下:

127.0.0.1:0>scan 0
1) 22
2) foo_21
foo_25
foo_23
foo_2
foo_3
foo_11
foo_12
foo_1
foo_15
foo_16
foo_14
foo_6

第一个结果为新游标,第二个结果为迭代内容,再次迭代:

127.0.0.1:0>scan 22
1) 3
2) foo_22
foo_28
foo_17
foo_13
foo_5
foo_19
foo_26
foo_10
foo_24
foo_20
foo_9

返回游标3和迭代结果,第三次迭代:

127.0.0.1:0>scan 3
1) 0
2) foo_7
foo_8
foo_27
foo_18
foo_4

返回游标0表示迭代完毕。由于仅仅使用游标来记录迭代,所以同一个元素可能会被返回多次,或者迭代过程中被添加或删除那么这个元素可能会被返回, 也可能不会。增量式迭代命令并不保证每次执行都返回某个给定数量的元素,用户可以通过增量式迭代命令提供的 COUNT 选项来指定每次迭代返回元素的最大值,例:scan 0 count 5。该命令也提供了match其只返回给定模式的匹配元素,但是由于匹配是在元素取出之后,客户端返回之前这段时间进行的,所以有可能在多次迭代过程中不返回任何元素,例:scan 0 match foo_1*。在同一时间,可以有任意多个客户端对服务器进行迭代,迭代状态保存在游标里,服务器无须记录任何迭代状态,客户端也可以中途停止迭代而无须通知服务器,也不会对服务器造成任何问题,当传入错误游标时,只会导致数据失真,而不会导致任何服务器出现问题。

Redis学习笔记(三) 基本命令:Key操作的更多相关文章

  1. redis学习笔记(三)

    Spring data redis: 要求: Redis 版本 > 2.6 与 Lettuce 或 Jedis 集成,两种java开源Redis库. Spring redis主要做的两件事: 连 ...

  2. Mongodb学习笔记三(Mongodb索引操作及性能测试)

    第三章 索引操作及性能测试 索引在大数据下的重要性就不多说了 下面测试中用到了mongodb的一个客户端工具Robomongo,大家可以在网上选择下载.官网下载地址:http://www.robomo ...

  3. redis学习笔记(三)——redis的命令大全总结

    总结了一些redis五种存储类型的常用命令以及一些通用操作命令,不是很全,是在学习的时候将学到的做了个汇总,使用的时候可以查一下. 笔记写在表格里面了,不好粘贴.......后面的直接截图了..... ...

  4. redis 学习笔记三

    一.redis 复制 数据库复制指的是发生在不同数据库实例之间,单向的信息传播的行为,通常由被复制方和复制方组成,被复制方和复制方之间建立网络连接,复制方式通常为被复制方主动将数据发送到复制方,复制方 ...

  5. Redis学习笔记三:多机数据库的实现

    1.复制 执行slaveof命令或者设置slaveof选项,让一个服务器去复制另外一个服务器. 旧版复制功能的实现(Redis 2.8 之前的版本) 复制功能分为同步和命令传播两个操作. 同步(syn ...

  6. redis 学习笔记三(队列功能)

    Redis队列功能介绍 List 常用命令: Blpop删除,并获得该列表中的第一元素,或阻塞,直到有一个可用 Brpop删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用 Brpoplpus ...

  7. StackExchange.Redis学习笔记(三)

    这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...

  8. StackExchange.Redis学习笔记(三) 数据库及密码配置 GetServer函数

    这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...

  9. LUA学习笔记三·时间等操作系统库

    1.构造时间 2.时间制定格式输出 3.计时器(闭包)os.difftime (t2, t1) 返回以秒计算的时刻 t1 到 t2 的差值. (这里的时刻是由 os.time 返回的值). 在 POS ...

  10. openresty 学习笔记三:连接redis和进行相关操作

    openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...

随机推荐

  1. MacType 缺字问题【转】

  2. 编译OpenCV遇到Qmake问题

    1.Ubuntu安装OpenCv,出现:qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or ...

  3. (转)基于MVC4+EasyUI的Web开发框架经验总结(3)- 使用Json实体类构建菜单数据

    http://www.cnblogs.com/wuhuacong/p/3669708.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...

  4. (转)RabbitMQ学习之路由(java)

    http://blog.csdn.net/zhu_tianwei/article/details/40887755 参考:http://blog.csdn.NET/lmj623565791/artic ...

  5. http请求后台报406错误

    1.springMVC的项目,通过浏览器访问后台方法遇到了报406的错误,找了很多原因,最终发现是因为缺少spring-mvc的json配置. 2.添加依赖:jackson-databind.jack ...

  6. BZOJ 1666: [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏 幼儿园测试题

    本来以为是一道数学题,一顿XJBT导式子,结果就是个幼儿园都会的模拟. Code: #include<bits/stdc++.h> #define ll long long using n ...

  7. Python基础学习_01修改代码所属作者

    1.修改开头的作者Author 2.具体步骤如下图 (1)点击下图所画的按钮 (2)具体操作如图所示,就可以得到自己想要的结果了.

  8. 01.Python基础-5.函数

    1 函数的介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 内置函数 自定义函数 2 函数的定义和调用 2.1 函数的定义和调用 定义 def 函数名([参数]): 代码块 [ ...

  9. 用于检测进程的shell脚本

    用于检测进程的shell脚本 2010-07-07 10:38:08|  分类: Centos |字号 订阅 脚本一: #!/bin/sh program=XXXX     #进程名 sn=`ps - ...

  10. --without-v4l ,make clean, 重新make即可。

    --without-v4l ,make clean, 重新make 2011-02-27 17:38 Error: X11 support required for GUI compilation