详解Redis基本命令
当redis环境搭建结束后,接下来需要掌握并了解redis的一些相关命令,本篇文章主要从实际操作的层面来与大家分享redis基本命令,
具体包括:Redis五大基本类型命令(Strings,Lists,Hashes,Sets和Sort Sets)和Keys相关命令。
一 Strings
1. SET
SET 命令用于创建K/V,在创建K/V时,可以添加一些约束条件,如过期时间
定义:SET key value[expiration EX seconds|PX milliseconds] [NX|XX]
EX
seconds – 以秒为单位设置key过期时间PX
milliseconds – 以毫秒为单位设置key过期时间NX
– 如果key不存在,则设置keyXX
– 如果key存在时,则设置key
2.GET
GET命令用于通过key查询value
定义:GET key
3.APPEND
APPEND命令用于追加内容,若key存在,则在该key的value后追加值;若key不存在,则先创建key,再添加value;
定义:APPEND key value
4.BITCOUNT
计算value指定索引区间的为1的个数
定义:BITCOUNT key start end
5.BITFIELD
略
6.BITTOP
进行value的位操作,且将结果保存在destkey中
定义:BITOP operation destkey key1 [key2 ..]
7.BITP0S
命令返回字符串里面第一个被设置为1或者0的bit位
定义:BITPOS key bit start end
8.DECR
DECR命令用于将可转化为int类型的key值减1,需要注意的是,当key值不可转化为数值时,会出错
定义:DECR
8.DECRBY
DECRBY与DECR原理差不多,只不过DECRBY是减去多少。
定义:DECRBY key decrement
9.GETBIT
获取key的value值在指定offset处的bit值
定义:GETBIT key offset
10.GETRANGE
GETRANGE表示截取key相应位置的字符串
定义:GETRANGE key start end
11.GETSET
设置key的value值,并返回设置前的值
定义:GETSET key value
12.INC
自动加1
定义:INC key
13.INCBY
在当前key值基础上增加值
定义:INCBY key increment
14.INCRBYFLOAT\
在当前key值基础上增加浮点数
定义:INCRBYFLOAT key increment
15.MGET
批量返回指定key和value
定义:MGET key [key..]
16.MSET
批量设置多个key和value
定义:MSET key value [key value ..]
17.MSETNX
在批量设置key时,单批量设置中,只要有一个key已经存在,则该批设置全部取消,由于这种特性,
MSETNX
可以实现要么所有的操作都成功,要么一个都不执行,这样可以用来设置不同的key,来表示一
个唯一的对象的不同字段。
定义:MSETNX key value [key value ...]
18.PSETEX
设置过期时间,以毫秒为单位
定义:PSETEX key miliseconds value
19.SETBIT
在key的value指定offset处设置bit值,并且返回offset处原来的bit值
定义:SETBIT key offset value
20.SETEX
设置k/v同时,设置过期时间
定义:SETEX key seconds value
21.SETNX
该命令与SET命令差不多,唯一区别是SETNX设置key时,若key不存在,则创建并添加value值,否则,不操作
定义:SETNX key value
22.SETRANGE
从value值的offset处,用新value替换。
定义:SETRANGE key offeset value
23.STRLEN
返回key的value的字符串长度
定义:STRLEN key
二 Hashes
(一)概述
(二)命令操作
1.HSET
设置hash单个值
定义:HSET key filed value
2.HGET
获取hash字段值
定义:HGET key field
3.HDEL
删除key的指定字段
定义:HDEL key field
4.HMSET
设置key的多个字段
定义:HMSET key value [key value ..]
5.HMGET
获取key的多个字段值
定义:HMGET key field [field..]
6.HGETALL
返回key指定哈希集中所有字段和值
定义:HGETALL key
7.HEXISTS
检查key中是否存在指定的field,存在返回1,不存在返回0
定义:HEXISTS key field
8.HKEYS
返回hashs的key的字段
定义:HKEYS key
9.HVALS
返回 key 指定的哈希集中所有字段的值
定义:HVALS key
10.HLEN
返回 key
指定的哈希集包含的字段的数量
定义:HLEN key
11.HSTRLEN
返回key的指定字段的字符串长度
定义:HSTRLEN key field
12.HINCRBY
指定字段增减指定值
定义:HINCRBY key field increment
13.HINCRBYFLOAT
指定字段增加指定浮点数
定义:HINCRBYFLOAT key field increment
11.HSCAN
略
12.HSETNX
与HSET功能一样,区别在于HSETNX会先判断field是否存在,若存在,则不做任何操作
定义:HSETNX key filed value
三 Lists
1.RPUSH
从队列右端压入数据到List,一次可以压入单个或多个数据
定义:RPUSH key value [value ..]
2.RPOP
从List移除元素,并返回被移除的元素
定义:RPOP key
3.LPUSH
从List左侧压入元素,返回压入后的List长度
定义:LPUSH key value [value ..]
4.LPOP
从List左侧移除元素,并返回被移除的元素
定义:LPOP key
5.LLEN
返回key对应的List长度
定义:LLEN key
6.LSET
设置key指定index处的值
定义:LSET key index value
7.LINDEX
返回指定index处的value值
定义:LINDEX key index
8.LINSERT
在List指定value前或后插入元素
定义:LINSERT key BEFORE|AFTER pivot value
9.LREM
从头或从尾移除前count次出现value的值,count为正数,则从头向尾开始;count为负数,则从
尾向头开始;count为0,移除所有为value的值
定义:LREM key count value
10.LTRIM
截取List指定区间的值
定义:LTRIM key start stop
11.LRANGE
获取List指定索引区间的值
定义:LRANGE key start end
12.LPUSHX
与LPUSH功能一样,都是插入从左侧插入元素,区别是,LPUSHX在插入元素
前,先判断key是否存在,只有key存在时,才插入元素。
定义:LPUSHX key value
13.RPUSHX
功能与RPUSH一样,区别是RPUSHX在插入元素前,先判断key是否存在,
只有key存在时,才插入元素。
定义:RPUSHX key value
14.RPOPLPUSH
从指定key中移除元素,且将移除的元素存放在另一个key中,返回被移除和放入的元素
定义:RPOPLPUSH source destination
15.BRPOPLPUSH
BRPOPLPUSH
是RPOPLPUSH
的阻塞版本。 当 source 包含元素的时候,这个命令表现
得跟RPOPLPUSH
一模一样。 当 source 是空的时候,Redis将会阻塞这个连接,直到
另一个客户端 push 元素进入或者达到 timeout 时限。 timeout 为 0 能用于无限期阻塞
客户端
定义:BRPOPLPUSH key source destination timeout
16.BLPOP
BLPOP是阻塞式列表的弹出原语
定义:BLPOP key [key ..] timeout
17.BRPOP
BRPOP是一个阻塞的列表弹出原语
定义:BRPOP key [key ..] timeout
四 Sets
1.SADD
向Sets中添加元素,一次可添加单个或多个
定义:SADD key member [member..]
2.SMEMBERS
查看key所有元素
定义:SMEMBERS key
3.SCARD
返回key元素个数
定义:SCARD key
4.SISMEMBER
判断key中是否存在某个元素,存在返回1,不存在返回0
定义:SISMEMBER key member
5.SREM
定义:SREM key members [members ..]
6.SMOVE
从指定key移除元素到目标元素,移除成功返回1,否则返回0
定义:SMOVE
7.SPOP
从sets中随机取count个元素,返回随机取出的元素
定义:SPOP key [count]
8.SRANDMEMBER
从sets中随机返回count个元素
定义:SRANDMEMBER
9.SDIFF
返回集合差集
定义:SDIFF key [key ..]
10.SDIFFSTORE
SDIFFSTORE命令与SDIFF命令功能一样,区别是SDIFFSTORE将差集的结果存放在destination中
定义:SDIFFSTORE destination key [key ..]
11.SINTER
定义:SINTER key [key..]
12.SINTERSTORE
SINTERSTORE功能与SINTER是一样的,都是返回差集,区别是SINTERSTORE将差集存在
destination中
定义:SINTERSTORE destination key [key..]
13.SUNION
SUNION返回并集
定义:SUNION key [key..]
14.SUNIONSTORE
SUNIONSTORE功能与SUNION一样,都是返回并集,区别是SUNIONSTORE
将并集存放在destination中
定义:SUNIONSTORE destinaiton key [key..]
15.SCAN
略
五 Sorted Sets
1.ZADD
添加新值
定义:ZADD key [NX|XX] [CH] [INCR] score member [score member]
2.ZRANGE
获取指定key的索引范围内的值,可只获取值或带权重的值。
定义:ZRANGE key start end [WIHTSCORES]
3.ZSCORE
返回成员的score
定义:ZSCORE key member
4.ZREM
从key中移除元素
定义:ZREM key member [member..]
5.ZRANK
返回有序集key中membe排名
定义:ZRANK key member
6.ZCOUNT
计算介于score范围内的元素个数
定义:ZCOUNT key min max
7.ZCARD
返回key的有序集个数
定义:ZCARD key
8.ZPOPMIN
从key中移除count个socre最低的元素
定义:ZPOPMIN key [count]
9.ZPOPMAX
从key中移除count个socre最高的元素
定义:ZPOPMAX
10.ZINCRY
为有序集key的成员member的score值加上增量increment,返回增量后的
score
定义:ZINCRY key increment member
11.BZPOPMIN
功能与ZPOPMIN一样,区别是BZPOPMIN带有阻塞
定义:BZPOPMIN key [key..] timeout
12.BZPOPMAX
功能与ZPOPMAX一样,区别是BZPOPMAX带有阻塞
定义:BZPOPMAX key [key..] timeout
13.ZINTERSCORE
计算有序集合的交集,其中destination用来存放交集结果,mumkeys指用于计算交集key的个数
,weight表示计算交集时,score乘以的权重,默认为1
定义:ZINTERSCORE destination mumkeys key [key..] [weights weight] [SUM|MIN|MAX]
14.ZUNIONSTORE
用法与ZINTERSCORE一样,只不过是计算有序集合的并集
定义:ZUNIONSTORE destination mumkeys key [key..] [weights weight] [SUM|MIN|MAX]
15.ZLEXCOUNT
ZLEXCOUNT 命令用于计算有序集合中指定成员之间的成员数量
定义:ZLEXCOUNT key min max
16.ZRANGEBYLEX
ZRANGEBYLEX 返回指定成员区间内的成员,按成员字典正序排序, 分数必须相同
定义:ZRANGEBYLEX key min max [limit offset count]
17.ZRANGBYSCORE
根据分数方位查找元素
定义:ZRANGBYSCORE key min max [withscores] [limit offset count]
18.ZREMRANGEBYRANK
移除有序集key中,指定排名(rank)区间内的所有成员
定义:ZREMRANGEBYRANK key start stop
19.ZREMRANGBYSCORE
移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员
定义:ZREMRANGBYSCORE key min max
20.ZREVRANGE
返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从大到小)来排列。
具有相同score值的成员按字典序的反序排列。 除了成员按score值递减的次序排列这一点外
定义:ZREVRANGE key start stop [withscores]
21.ZREVRANGEBYLEX
ZREVRANGEBYLEX 返回指定成员区间内的成员,按成员字典倒序排序, 分数必须相同
定义:ZREVRANGEBYLEX key min max
22.ZREVRANGEBYSCORE
返回有序集合中指定分数区间内的成员,分数由高到低排序
定义:ZREVRANGEBYSCORE key min max
23.ZREVRANK
返回有序集key中成员member的排名,其中有序集成员按score值从大到小排列。
排名以0为底,也就是说,score值最大的成员排名为0
定义:ZREVRANK key member
24.ZSCAN
定义:ZSCAN key cursor [math pattern] [count count]
六 Keys
1.DEL
删除key
定义:DEL key [key...]
2.DUMP
序列化key
定义:DUMP key
3.RESTORE
反序列化
定义:RESTORE key ttl serialeze-value [replace]
4.EXISTS
判断key是否存在,存在返回1,不存在返回0
定义:EXISTS key
5.EXPIRE
设置过期时间,以秒为单位
定义:EXPIRE seconds
6.EXPIREAT
EXPIREAT的作用和EXPIRE类似,都用于为 key 设置生存时间。
不同在于EXPIREAT命令接受的时间参数是 UNIX 时间戳 Unix timestamp
定义:EXPIREAT key timespan
7.KEYS
查看key,其中pattern满足正则表达式
定义:KEYS pattern
8.MIGRATE
定义:MIGRATE host port key destination-db timeout [copy] [replace]
9.MOVE
Redis MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中
定义:MOVE key db
10.OBJECT
OBJECT
命令可以在内部调试(debugging)给出keys的内部对象,它用于检查或者了
解你的keys是否用到了特殊编码 的数据类型来存储空间z。 当redis作为缓存使用的时候,
你的应用也可能用到这些由OBJECT
命令提供的信息来决定应用层的key的驱逐策略(eviction policies)
定义:OBJECT subcommand [arguments [arguments..]]
11.PERSIST
持久化key
定义:PERSIST key
12.PEXPIRE
它以毫秒为单位设置 key 的生存时间
定义:PEXPIRE key milliseconds
13.PEXPIREAT
以毫秒为单位设置 key 的过期 unix
时间戳
定义:PEXPIREAT key milliseconds-timestamp
14.PTTL
以毫秒为单位返回 key 的剩余生存时间,功能与TTL差不多
定义:PTTL key
15.RANDOMKEY
从当前数据库随机返回一个key
定义:RANDOMKEY
16.RENAME
给key重新命名
定义:RENAME key newkey
17.RENAMENX
当且仅当 newkey 不存在时,将 key 改名为 newkey ,成功返回1,失败返回0
定义:RENAMENX key newkey
18.SCAN
增量迭代集合元素
定义:SCAN cursor [match pattern] [count count]
19.SORT
排序
定义:SORT key [by pattern] [limit offset count] [get pattern] [asc|desc] [alpha] destination
20.TOUCH
修改key最后访问时间
定义:TOUCH key [key..]
21.TTL
计算key过期剩余时间,返回剩余的秒数
定义:TTL key
22.TYPE
返回key类型
定义:TYPE key
23.UNLINK
异步删除keys
定义:UNLINK key [key..]
24.WAIT
当前连接的写操作会产生日志偏移,该命令会返回已处理至该偏移量的slaves的个数
定义:WAIT numslavess timeout
七 版权区
- 转载博客,必须注明博客出处
- 博主网址:http://www.cnblogs.com/wangjiming/
- 如您有新想法,欢迎提出,邮箱:2098469527@qq.com
- 专业.NET之家技术QQ群:490539956
- 专业化Java之家QQ群:924412846
- 有问必答QQ群:2098469527
- 一对一技术辅导QQ:2098469527
详解Redis基本命令的更多相关文章
- Redis学习——详解Redis配置文件(三)
一.Redis脚本简介 在我们介绍Redis的配置文件之前,我们先来说一下Redis安装完成后生成的几个可执行文件: redis-server .redis-cli .redis-benchmark ...
- 详解 Redis 应用场景及应用实例
redis(二)高级用法 详解 Redis 应用场景及应用实例 Redis 它是什么?它用来做什么?它的优势与短板如何? 告诉你Redis是一个牛逼货
- 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习
反射实现Model修改前后的内容对比 在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...
- 详解Redis持久化(RDB和AOF)
详解Redis持久化(RDB和AOF) 什么是Redis持久化? Redis读写速度快.性能优越是因为它将所有数据存在了内存中,然而,当Redis进程退出或重启后,所有数据就会丢失.所以我们希望Red ...
- 详解Redis Cluster集群
Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求.当遇到单机内存.并发.流量等瓶颈时,可以采用Cluster架构达到负载 ...
- 详解 Redis 内存管理机制和实现
Redis是一个基于内存的键值数据库,其内存管理是非常重要的.本文内存管理的内容包括:过期键的懒性删除和过期删除以及内存溢出控制策略. 最大内存限制 Redis使用 maxmemory 参数限制最大可 ...
- 一文详解Redis键过期策略
摘要:Redis采用的过期策略:惰性删除+定期删除. 本文分享自华为云社区<Redis键过期策略详解>,作者:JavaEdge. 1 设置带过期时间的 key # 时间复杂度:O(1),最 ...
- jedis连接池详解(Redis)
转自:http://tianxingzhe.blog.51cto.com/3390077/1684306 原子性(atomicity): 一个事务是一个不可分割的最小工作单位,事务中包括的诸操作要么都 ...
- 详解Redis RDB持久化、AOF持久化
1.持久化 1.1 持久化简介 持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘). 1.2 red ...
随机推荐
- go get 获取被墙依赖包解决方法
前言: 随着 go1.11 的发布,go 官方引入了 go module 来解决依赖管理问题,go module 被集成到原生的 go cmd 中,但是如果你的代码库在$GOPATH中,go1.11 ...
- 图片(jpg,png,tif等)批量转dicom(dcm)格式
简介 医学领域专用工具,千金难求,可以批量把jpg.png.bmp.tif图片转换为dicom(dcm)格式,并且保持原有顺序,同时支持嵌入部分重要的dicom元数据,比如:病人姓名,病人生日等. 将 ...
- Saiku默认给数据类型的数据添加小数点问题处理(三十一)
Saiku默认给数据类型的数据添加小数点问题处理 不知道大家有没有遇到过saiku定义的维度信息,数据类型时 展示出来的数据会自动加上 .0的后缀. 比如我定义了一个维度为 年, 在数据库中为 int ...
- C++ day01-C++的函数和对象
C++的函数和对象 1.1 1 混合型语言 c++以.cpp为文件扩展名,有且只有一个名为main的主函数,因保留了这个面向过程的主函数,所以被称为混合语言 2 注释方式 . C++的注释方式有两种, ...
- 给HttpClient添加请求头(HttpClientFactory)
前言 在微服务的大环境下,会出现这个服务调用这个接口,那个接口的情况.假设出了问题,需要排查的时候,我们要怎么关联不同服务之间的调用情况呢?换句话就是说,这个请求的结果不对,看看是那里出了问题. 最简 ...
- MongoDB 高级教程
MongoDB 关系 MongoDB 的关系表示多个文档之间在逻辑上的相互联系. 文档间可以通过嵌入和引用来建立联系. MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多) N: ...
- LinuxShell脚本——选择结构
LinuxShell脚本——选择结构 摘要:本文主要学习了Shell脚本中的选择结构. if-else语句 基本语法 最简单的用法就是只使用if语句,它的语法格式为: if 条件 then 命令 fi ...
- pycharm2019.2一个奇怪的bugger,执行后输出内容被莫名处理
2019-08-20 07:45:07 python爬虫是一直来大家都用的多的,我也是常常用到. requests做请求方便的很,但是今天却遇到requests的bug.text内容不可信. pych ...
- 函数的防抖---js
执行规定一段时间后执行 <input type="text" id="inp" /> <script> var oInp = docum ...
- Linux 下Postgresql 命令:
关闭:service postgresql stop 启动:service postgresql start 启动数据库:pg_ctl start -D /data/postgres 重启数据库: p ...