当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不存在,则设置key
  • XX – 如果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基本命令的更多相关文章

  1. Redis学习——详解Redis配置文件(三)

    一.Redis脚本简介 在我们介绍Redis的配置文件之前,我们先来说一下Redis安装完成后生成的几个可执行文件: redis-server .redis-cli .redis-benchmark ...

  2. 详解 Redis 应用场景及应用实例

    redis(二)高级用法 详解 Redis 应用场景及应用实例 Redis 它是什么?它用来做什么?它的优势与短板如何? 告诉你Redis是一个牛逼货

  3. 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习

    反射实现Model修改前后的内容对比   在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...

  4. 详解Redis持久化(RDB和AOF)

    详解Redis持久化(RDB和AOF) 什么是Redis持久化? Redis读写速度快.性能优越是因为它将所有数据存在了内存中,然而,当Redis进程退出或重启后,所有数据就会丢失.所以我们希望Red ...

  5. 详解Redis Cluster集群

    Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求.当遇到单机内存.并发.流量等瓶颈时,可以采用Cluster架构达到负载 ...

  6. 详解 Redis 内存管理机制和实现

    Redis是一个基于内存的键值数据库,其内存管理是非常重要的.本文内存管理的内容包括:过期键的懒性删除和过期删除以及内存溢出控制策略. 最大内存限制 Redis使用 maxmemory 参数限制最大可 ...

  7. 一文详解Redis键过期策略

    摘要:Redis采用的过期策略:惰性删除+定期删除. 本文分享自华为云社区<Redis键过期策略详解>,作者:JavaEdge. 1 设置带过期时间的 key # 时间复杂度:O(1),最 ...

  8. jedis连接池详解(Redis)

    转自:http://tianxingzhe.blog.51cto.com/3390077/1684306 原子性(atomicity): 一个事务是一个不可分割的最小工作单位,事务中包括的诸操作要么都 ...

  9. 详解Redis RDB持久化、AOF持久化

    1.持久化 1.1 持久化简介 持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘). 1.2 red ...

随机推荐

  1. 第02组 Beta版本演示

    目录 1. 博客链接及组员信息(2分) 2. 贡献比例(3分) 3. GitHub 项目链接(1分) 4. 博客汇总(2分) 5. 燃尽图(3分) 6. 原计划.达成情况及原因分析(6分) 7. Be ...

  2. Linux下修改Mysql密码的三种方式

    前言 有时我们会忘记Mysql的密码,或者想改一个密码,以下将对这两种情况修改密码的三种解决方法做个总结 本文都以用户为 root 为例 一.拥有原来的myql的root的密码 方法一: 在mysql ...

  3. IT兄弟连 Java语法教程 逻辑运算符

    表8中显示的布尔逻辑运算符只能操作布尔类型的操作数,所有的二元逻辑运算符都可以组合两个布尔值,得到的结果为布尔类型. 表8  布尔逻辑运算符 布尔逻辑运算符”&“.”|“以及”^“,都会布尔值 ...

  4. python之面向对象设计、编程

    面向对象 一.编程三个范式 1.面向过程编程 2.函数式编程 数学层面的函数 python中的函数编程 3.面向对象编程 二.面向对象设计 1.类:把一类事物共同的特征和共同的动作整合在一起就是类: ...

  5. 数据库——SQL-SERVER练习(4) 建表及数据完整性

    1. 输入下图的语句, 建立学生表STU. CREATE TABLE STU ( SNO NUMERIC() PRIMARY KEY, SNANE CHAR() NOT NULL, SSEX CHAR ...

  6. MySQL for OPS 11:优化

    写在前面的话 不管是作为运维还是作为 DBA,我们的工作都不是写 SQL,搞业务.更多的还是如何实现又好又快的给开发提供一个数据库环境和保障数据的安全性.前面的文章中读写分离,高可用,建立索引,分库分 ...

  7. 训练DQN,报错:OSError: [Errno 12] Cannot allocate memory

    训练DQN,报错:OSError: [Errno 12] Cannot allocate memory 问题介绍: 这两天在做强化学习的作业,使用 DQN 打 Atari 游戏,但在训练过程中,出现了 ...

  8. String replaceAll(String regex,String str)满足正则表达式的部分替换为给定内容

    package seday02;/*** * String replaceAll(String regex,String str)* @author xingsir*/public class Rep ...

  9. gradle使用基础

    说明 介绍gradle使用基础,gradle基础脚本结构和常规使用方法,以及一个简单的gradle示例.主要是为了简单的介绍gradle使用. gradle环境配置 gradle可以通过两种方式运行g ...

  10. [b0007] windows 下 eclipse 开发 hdfs程序样例

    目的: 学习使用hdfs 的java命令操作 相关: 进化: [b0010] windows 下 eclipse 开发 hdfs程序样例 (二) [b0011] windows 下 eclipse 开 ...