key  *   查看redis中的所有键(当键的数量较多会影响性能,不建议生产环境中使用)

exists  key    判断一个键是否存在,存在返回1,否则返回0

del  key  [key...]    删除一个或多个键,返回删除的键的个数

(del命令的参数不支持通配符,但我们可以结合linux的管道和xargs命令自己实现删除所有符合规则的键。比如要删除所有以"user:"开头的键,就可以执行 redis-cli keys "user:*" | xargs redis-cli del。另外由于del命令支持多个键作为参数,所以还可以执行 redis-cli del 'redis-cli keys "user:*"'来达到同样的效果,而且性能更好)

基本命令

type  key    获得键值的数据类型

set  key  value  给键赋值

mset  key1  v1  key2  v2  key3  v3  同时给多个键赋值

get  key  取值

mget  key1  key2  key3  同时获取多个键值

incr  num  得到num递增后的数字,如果没有则创建并从0加1,即得到1,如果num不是数字类型则报错

incrby  num  2  和incr类似,只不过可以指定递增多少

incrbyfloat  num  6.7  可以指定增加双精度浮点数

decr  num  得到num递减后的数字

decrby  num  2  和decr类似,只不过可以指定递减多少

append  key  value  在字符串后面追加值,如果该键不存在即为为这个键赋值(该命令第二个参数需要加引号,因为有可能追加空格,所以要引起来)

strlen  key  返回键值的长度,如果不存在返回0

散列类型

hset  key  field  value  赋值

hget  key  field  取值

hmset  key  field1  v1  field2  v2  field3  v3  同时赋值多个

hmget  key  field1  field2  field3  同时获取多个值

hgetall  key  获取全部

hset 方便之处在于不用区分是插入还是更新,统统用hset,如果不存在即插入,返回1,如果存在即更新,返回0。

在redis中每个键都属于一个明确的数据类型,如通过hset命令建立的键是散列类型,通过set命令建立的键是字符串类型等。使用一种数据类型的命令操作另一种数据类型的键会提示错误。

hexists  key  field   该命令用来判断一个字段是否存在,如果存在返回1,否则返回0,如果键不存在也会返回0。

hsetnx  key  field  value  当字段不存在时赋值,和命令hset类似,只不过执行该命令如果键存在不做任何操作(后面的nx表示 if not exists)

hincrby  key  field  increment  和incrby类似,可以使字段值增加指定整数。散列类型没有hincr命令,但是可以通过hincrby key field 1来实现

hdel  key  field  [field...]   hdel命令可以删除一个或多个字段,返回值是被删除的字段个数

hkeys  key  只获取键的字段名(对象的属性名)

hvals  key   只获得键的字段值(对象的属性值)

hlen  key   获取字段数量

列表类型

lpush  key  value  [value...]  从左边往列表放数据,返回当前列表长度

rpush  key  value  [value...]  从右边往列表放数据,返回当前列表长度

lpop  key    从最左边移除一个元素,并且把移除的元素返回

rpop  key    从最右边移除一个元素,并且把移除的元素返回

lrange  key  start  stop  获取列表中的片段,索引从0开始,左右都包含,不会像lpop一样删除片段,支持负索引,负索引就是从右边开始数,如果start>stop返回空列表,如果stop大于最大则返回到最后一个元素

lrem  key  count  value  lrem命令会删除列表中前count个值为value的元素,返回值是实际删除的元素个数。根据count值的不同,lrem命令的执行方式会略有差异:

  当count>0时lrem命令会从列表左边开始删除前count个值为value的元素;

  当count<0时lrem命令会从列表右边开始删除前|count|个值为value的元素;

  当count=0时lrem命令删除所有的值为value的元素。

lindex  key  index   返回指定索引的元素,从0开始,正数从左边数,负数从右边数

lset   key   index  value    设置指定索引的值,将索引为index的元素赋值为value

ltrim  key  start  end   ltrim命令可以删除指定索引范围之外的所有元素,左右都包含

linsert   key  before|after   pivot   value   linsert命令首先会在列表中从左到右找值为pivot的元素,然后根据第二个参数是before还是after来决定将value插入到该元素的前面还是后面
rpoplpush   source   destination  该命令从命名就能看出先执行rpop命令再执行lpush命令。该命令会先从source列表的右边弹出一个元素,然后将其加入到destination列表的左边,并返回这个元素的值,整个过程是原子的。两个列表可以一样,这样的话就是循环的将最右边一个元素放到最左边。

集合类型

sadd  key  member  [member...]   向集合中加入一个或多个元素,如果已经存在则忽略,返回成功加入的元素个数,重复的不在计算之内

srem  key  member  [member...]    删除一个或多个元素,返回删除成功的个数

smembers  key   返回集合中的所有元素

sismember  key  member   判断一个元素在集合中是否存在,存在返回1,不存在或键不存在返回0,无论集合中有多少元素,该命令始终可以极快的返回结果

sdiff  key  [key...]   计算集合的差集,集合A与集合B的差集表示为A-B,代表所有属于A且不属于B的元素构成的集合,支持同时传多个,比如A B C应先计算A和B的差集,再计算结果与C的差集

sinter  key  [key...]    计算集合的交集,代表同时属于集合A和集合B的元素构成的集合,支持同时传多个,即属于所有集合的元素构成的集合

sunion  key  [key...]    计算集合的并集,代表属于集合A或属于集合B的元素构成的集合,支持同时传多个,即属于任何一个集合的元素构成的集合

scard  key   该命令用来获得集合中的元素个数
sdiffstore  destination  key  [key...]   和sdiff命令功能一样,区别在于前者不会直接返回运算结果,而是将结果存储在destination中,常用于需要进行多步集合运算的场景中,如需要先计算差集再将结果和其他键计算交集

sinterstore  destination  key  [key...]  性质同上

sunionstore  destination  key  [key...]   性质同上

srandmember  key  [count]   该命令用来从集合中获取一个元素,还可以传递count参数来一次随机获得多个元素,根据count的正负不同,具体表现也不同:

  当count为正数时,会随机从集合里获得count个不重复的元素;

  当count为负数时,会随机从集中里获得|count|个元素,有可能相同;

spop  key    从集合中随机弹出一个元素,并删除,返回弹出的元素

有序集合类型

这里的有序并不是按加入集合的顺序排序,而是有序集合会有一个分数,根据这个分数排序

zadd  key  score  member  [score member...]   该命令用来向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原有的分数。返回新加入到集合中的元素个数,不包含之前已经存在的元素。(+inf和-inf分别表示正无穷和负无穷)

zscore  key  member   获得元素的分数

zrange  key  start  stop  [withscores]   该命令会按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素,同样的从0开始,包括两端,支持负数,如果在尾部加上参数withscores,会同时获得元素的分数。如果分数相同会按照ASCLL码排序

zrevrange  key  start  stop  [withscores]    从大到小排序

zrangebyscore  key  min  max  [withscores]  [limit offset count]   该命令按照元素分数从小到大的顺序返回分数在min和max之间(包含两端)的元素,如果希望分数范围不包含端点值,可以在分数前加上"("符号,同样支持负无穷(-inf)和正无穷(+inf),加上withscores参数会同时返回元素分数,后面可以加上参数limit,使用方法和mysql相同。

zrevrangebyscore  key  min  max  [withscores]  [limit offset count]    按照元素分数从大到小的顺序排序,需要注意的是该命令的min和max的参数顺序是相反的。

zincrby  key  increment  member   该命令可以增加一个元素的分数,返回值是更改后的分数,可以是负数即减分,如果元素不存在会先添加元素分数为0,再加上该分数。

zcard  key   获得集合中元素的数量

zcount  key  min  max    获得指定分数范围内的元素个数(min和max参数的特性和前面的一样)

zrem  key  member  [member...]    删除一个或多个元素,返回成功删除的元素数量

zremrangebyrank  key  start  stop    按照元素分数从小到大的顺序删除处在指定排名范围内的元素,并返回删除的元素数量。

zremrangebyscore  key  min  max   删除指定分数范围内的所有元素(min和max参数的特性和前面的一样)并返回删除的元素数量。

zrank  key  member   按照元素分数从小到大的顺序获得指定的元素的排名

zrevrank  key  member    按照元素分数从大到小的顺序获得指定的元素的排名

zinterstore  destination  numkeys  key  [key...]  [weights weight [weight...]]  [aggregate sum|min|max]  该命令用来计算多个有序集合的交集并将结果存储在destination键中(同样以有序集合类型存储),返回值为destination键中的元素个数。

destination键中的元素分数是由aggregate参数决定的:

  当aggregate是sum时(也就是默认值),destination键中元素的分数是每个参与计算的集合中该元素分数的和;比如集合A:1 a 2 b 3 c,集合B:10 a 20 b,则结果为集合:11 a 22 b

  当aggregate是min时,destination键中的元素的分数是每个参与计算的集合中元素分数的最小值;比如集合A:1 a 2 b 3 c,集合B:10 a 20 b,则结果为集合:1 a 2 b

  当aggregate是max时,destination键中的元素的分数是每个参与计算的集合中元素分数的最大值;比如集合A:1 a 2 b 3 c,集合B:10 a 20 b,则结果为集合:10 a 20 b

  该命令还能够通过weights参数设置每个集合的权重,每个集合在参与计算时元素得分数会被乘上该集合的权重。例如执行以下命令:

  zinterstore  destination  2  A  B  weights  1  0.1

  过程是A中元素乘以1,B中元素乘以0.1,然后再求交集,则结果为集合:(1*1+10*0.1)= 2 a (2*1+20*0.1)= 4 b

zunionstore   该命令为计算集合中的并集,性质同上

二、redis命令简单使用(不区分大小写)的更多相关文章

  1. Redis命令拾遗二(散列类型)

    本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址  http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...

  2. redis 的简单命令

    以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...

  3. Redis系列(二):Redis的数据类型及命令操作

    原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...

  4. redis命令学习(二) · THIS SPACE

    列表(Lists)操作命令 Redis列表是简单的字符串列表,按照插入顺序排序. 你可以添加一个元素导列表的头部(左边)或者尾部(右边)LPUSH命令插入一个新的元素导头部,而RPUSH插入一个新元素 ...

  5. 二、Redis命令行和配置文件redis.windows.conf

    一.Redis发送命令的两种方式 redis-cli -h localhost -p 6379redis-cli ping 返回pong 证明正常 二.命令返回值 1.状态回复,如ping命令 2.错 ...

  6. Redis 命令,键(key),字符串(String),哈希(Hash),列表(List),集合(Set)(二)

      Redis 命令 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. ...

  7. 二、Redis启动、停止、Redis命令行的操作

    1.redis命令 redis执行了make install后,redis的课执行文件都会自动复制到 /usr/local/bin 目录 redis-server redis服务器 redis-cli ...

  8. redis(二):Redis 命令

    Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. 语法 Redis 客 ...

  9. 常用 redis 命令(for php)

    Redis 主要能存储 5 种数据结构,分别是 strings,hashes,lists,sets 以及 sorted sets. 新建一个 redis 数据库 $redis = new Redis( ...

随机推荐

  1. 敏捷(Agile)——“说三道四”

    可以这么理解:一种以人为本.团队合作.快速响应变化和可工作的软件作为宗旨的开发方法.亦可理解为在一个高度协作的环境中,不断地使用反馈进行自我调整和完善,持续交付用户想要的软件的过程.敏捷开发提倡通过多 ...

  2. 接口调用(发送http请求)

    // 向对应的url地址发送http请求, 并获取响应的json字符串    public String getHttpResponse(String url) {        // result用 ...

  3. python+selenium实现登录账户

    selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Gr ...

  4. sniffer pro 使用方法

    一.捕获数据包前的准备工作 在默认情况下,sniffer将捕获其接入碰撞域中流经的所有数据包,但在某些场景下,有些数据包可能不是我们所需要的,为了快速定位网络问题所在,有必要对所要捕获的数据包作过滤. ...

  5. 常用的TCP选项

    MSS选项:通知最大可接收量.发送SYN的TCP一端使用本选项通告对端它的最大分节大小(maximum segment size)即MSS,也就是它在本连接的每个TCP分节中愿意接受的最大数据量.发送 ...

  6. Spring Webflux: Kotlin DSL [片断]

    原文链接:https://dzone.com/articles/spring-webflux-kotlin-dsl-snippets 作者:Biju Kunjummen 译者:Jackie Tang ...

  7. java中的取整(/)和求余(%)

    1.取整运算符取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码: int a = 10; int b = 3; double c= ...

  8. 由HashMap哈希算法引出的求余%和与运算&转换问题

    1.引出问题 在前面讲解HashMap 的源码实现时,有如下几点: ①.初始容量为 1<<4,也就是24 = 16 ②.负载因子是0.75,当存入HashMap的元素占比超过整个容量的75 ...

  9. 关于局域网 手机连接apache服务器报403forbidden错误参考如下2017.6.6

    http://www.glbwl.com/wampServer-403-forbidden.html

  10. 读书笔记---HTML5实战 MARCO CASARIO(后六章)

    画布叠加:用CSS的z-index和position; 第八章 HTML5通信API ①XMLHTTPREQUEST是JS中用于服务器交互的API; ②用HTML5的POSTMESSAGE API实现 ...