二、redis命令简单使用(不区分大小写)
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命令简单使用(不区分大小写)的更多相关文章
- Redis命令拾遗二(散列类型)
本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...
- redis 的简单命令
以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...
- Redis系列(二):Redis的数据类型及命令操作
原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...
- redis命令学习(二) · THIS SPACE
列表(Lists)操作命令 Redis列表是简单的字符串列表,按照插入顺序排序. 你可以添加一个元素导列表的头部(左边)或者尾部(右边)LPUSH命令插入一个新的元素导头部,而RPUSH插入一个新元素 ...
- 二、Redis命令行和配置文件redis.windows.conf
一.Redis发送命令的两种方式 redis-cli -h localhost -p 6379redis-cli ping 返回pong 证明正常 二.命令返回值 1.状态回复,如ping命令 2.错 ...
- Redis 命令,键(key),字符串(String),哈希(Hash),列表(List),集合(Set)(二)
Redis 命令 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. ...
- 二、Redis启动、停止、Redis命令行的操作
1.redis命令 redis执行了make install后,redis的课执行文件都会自动复制到 /usr/local/bin 目录 redis-server redis服务器 redis-cli ...
- redis(二):Redis 命令
Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. 语法 Redis 客 ...
- 常用 redis 命令(for php)
Redis 主要能存储 5 种数据结构,分别是 strings,hashes,lists,sets 以及 sorted sets. 新建一个 redis 数据库 $redis = new Redis( ...
随机推荐
- mysql性能调优与架构设计笔记
1.mysql基本介绍 mysql支持多线程高并发的关系型数据库; 数据库存储引擎InnoDB.MyISAM; mysql快速崛起的原因就是他是开源的; 性能一直是mysql自豪的一大特点; 2.my ...
- 设置ActiveMQ的访问密码
1.设置ActiveMQ的访问密码,以提高ActiveMQ的安全性 2.在ActiveMQ的conf目录的activemq.xml中添加账号密码 2.1 添加的代码如下 <!-- 添加访问Ac ...
- SSM-Spring-09:Spring中jdk动态代理
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- JDK动态代理: 为何叫JDK动态代理呢? 所谓JDK,jdk是java开发工具包,它里面包含了一个动态代理的 ...
- Node.js使用supervisor遭遇‘supervisor’不是内部或外部命令,如果解决?
如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你 在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js ...
- Spider与OpenPyXL的结合
OpenPyXL的API文档 1.OpenPyXL基础操作 引入Workbook这个类,然后调用 from openpyxl import Workbook wb = Workbook() 通过ope ...
- [论文解读]CNN网络可视化——Visualizing and Understanding Convolutional Networks
概述 虽然CNN深度卷积网络在图像识别等领域取得的效果显著,但是目前为止人们对于CNN为什么能取得如此好的效果却无法解释,也无法提出有效的网络提升策略.利用本文的反卷积可视化方法,作者发现了AlexN ...
- Log4j2中的同步日志与异步日志
1.背景 Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式. 2.Log4j2中的同步日志 所谓同步日 ...
- netty源码分析之揭开reactor线程的面纱(一)
netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如 ...
- copy.copy()与copy.deepcopy()的详解
copy.copy() 元组和列表调用这个方法效果也不一样. 元组的效果: a = [1,2,3] b = [4,5,6] c = (a,b) e = copy.copy(c) 可以看到:e和c是指向 ...
- BZOJ_3685_普通van Emde Boas树_权值线段树
BZOJ_3685_普通van Emde Boas树_权值线段树 Description 设计数据结构支持: 1 x 若x不存在,插入x 2 x 若x存在,删除x 3 输出当前最小值,若不存 ...