【Redis】详细基础命令 - 学习笔记
Redis 环境搭建及运行
安装(Ubuntu举例,其他系统类似)
apt-get update && apt-get install redis-server -y
启动 redis
redis-server &
注:加上 &
是让 redis-server
运行在后台,按 enter
后,即可不阻塞当前终端。
redis 自带客户端连接 redis-server
redis-cli
Redis 连接与安全验证
redis 设置 pass 验证
Redis数据库可以使用安全的方案,使得进行连接的任何客户端在执行命令之前都需要进行身份验证。
要保护Redis安全,需要在配置文件中设置密码。
查看密码配置
CONFIG get requirepass
默认情况下此属性为空,这表示还没有为此实例设置密码。您可以通过执行以下命令更改此属性。如下所示:
1) "requirepass"
2) ""
进行密码配置
CONFIG set requirepass "pwd-store-in-server"
注:pwd-store-in-server
是你设置的密码
CONFIG get requirepass
设置密码后,如果任何客户端运行命令而不进行身份验证,则会返回一个 (error) NOAUTH Authentication required.
的错误信息。 因此,客户端需要使用AUTH命令来验证。
AUTH命令语法
AUTH YourNewPassword
Redis连接命令
下表列出了与Redis连接相关的一些基本命令。
redis-cli
序号 | 命令 | 说明 |
---|---|---|
1 | AUTH password | 使用给定的密码验证服务器 |
2 | ECHO message | 打印给定的字符串信息 |
3 | PING | 检查服务器是否正在运行 |
4 | QUIT | 关闭当前连接 |
5 | SELECT index | 更改当前连接的所选数据库 |
在远程服务器上运行命令
要在Redis远程服务器上运行命令,需要通过客户端redis-cli
连接到服务器
语法:
redis-cli -h host -p port -a password
host
: 主机port
: 端口password
: 密码
举例:
redis-cli -h 127.0.0.1 -p 6379 -a 123456
Redis 数据结构-键(key)
Redis
键命令用于管理 Redis 中的键。以下是使用redis键命令的语法。
COMMAND KEY_NAME
Redis键命令
下表列出了与键相关的一些基本命令。
编号 | 命令 | 描述 |
---|---|---|
1 | DEL key | 此命令删除一个指定键(如果存在)。 |
2 | DUMP key | 此命令返回存储在指定键的值的序列化版本。 |
3 | EXISTS key | 此命令检查键是否存在。 |
4 | EXPIRE key seconds | 设置键在指定时间秒数之后到期/过期。 |
5 | EXPIREAT key timestamp | 设置在指定时间戳之后键到期/过期。这里的时间是Unix时间戳格式。 |
6 | PEXPIRE key milliseconds | 设置键的到期时间(以毫秒为单位)。 |
7 | PEXPIREAT key milliseconds-timestamp | 以Unix时间戳形式来设置键的到期时间(以毫秒为单位)。 |
8 | KEYS pattern | 查找与指定模式匹配的所有键。 |
9 | MOVE key db | 将键移动到另一个数据库。 |
10 | PERSIST key | 删除指定键的过期时间,得永生。 |
11 | PTTL key | 获取键的剩余到期时间。 |
12 | RANDOMKEY | 从Redis返回一个随机的键。 |
13 | RENAME key newkey | 更改键的名称。 |
14 | PTTL key | 获取键到期的剩余时间(以毫秒为单位)。 |
15 | RENAMENX key newkey | 如果新键不存在,重命名键。 |
16 | TYPE key | 返回存储在键中的值的数据类型。 |
Redis 数据结构-字符串(string)
Redis字符串命令
下表列出了一些用于在 Redis 中管理字符串的基本命令。
编号 | 命令 | 描述说明 |
---|---|---|
1 | SET key value | 此命令设置指定键的值。 |
2 | GET key | 获取指定键的值。 |
3 | GETRANGE key start end | 获取存储在键上的字符串的子字符串。 |
4 | GETSET key value | 设置键的字符串值并返回其旧值。 |
5 | GETBIT key offset | 返回在键处存储的字符串值中偏移处的位值。 |
6 | MGET key1 [key2…] | 获取所有给定键的值 |
7 | SETBIT key offset value | 存储在键上的字符串值中设置或清除偏移处的位 |
8 | SETEX key seconds value | 使用键和到期时间来设置值 |
9 | SETNX key value | 设置键的值,仅当键不存在时 |
10 | SETRANGE key offset value] | 在指定偏移处开始的键处覆盖字符串的一部分 |
11 | STRLEN key | 获取存储在键中的值的长度 |
12 | MSET key value [key value …] | 为多个键分别设置它们的值 |
13 | MSETNX key value [key value …] | 为多个键分别设置它们的值,仅当键不存在时 |
14 | PSETEX key milliseconds value | 设置键的值和到期时间(以毫秒为单位) |
15 | INCR key |
将键的整数值增加1
|
16 | INCRBY key increment | 将键的整数值按给定的数值增加 |
17 | INCRBYFLOAT key increment | 将键的浮点值按给定的数值增加 |
18 | DECR key |
将键的整数值减1
|
19 | DECRBY key decrement | 按给定数值减少键的整数值 |
20 | APPEND key value | 将指定值附加到键 |
Redis 数据结构-哈希(hash)
Redis Hashes
是字符串字段和字符串值之间的映射(类似于PHP中的数组类型)。 因此,它们是表示对象的完美数据类型。
在Redis中,每个哈希(散列)可以存储多达4亿个键-值对。
Redis哈希命令
下表列出了与哈希/散列相关的一些基本命令。
序号 | 命令 | 说明 |
1 | HDEL key field2 [field2] | 删除一个或多个哈希字段。 |
2 | HEXISTS key field | 判断是否存在散列字段。 |
3 | HGET key field | 获取存储在指定键的哈希字段的值。 |
4 | HGETALL key | 获取存储在指定键的哈希中的所有字段和值 |
5 | HINCRBY key field increment | 将哈希字段的整数值按给定数字增加 |
6 | HINCRBYFLOAT key field increment | 将哈希字段的浮点值按给定数值增加 |
7 | HKEYS key | 获取哈希中的所有字段 |
8 | HLEN key | 获取散列中的字段数量 |
9 | HMGET key field1 [field2] | 获取所有给定哈希字段的值 |
10 | HMSET key field1 value1 [field2 value2 ] | 为多个哈希字段分别设置它们的值 |
11 | HSET key field value | 设置散列字段的字符串值 |
12 | HSETNX key field value | 仅当字段不存在时,才设置散列字段的值 |
13 | HVALS key |
Redis 数据结构-列表(list)
Redis
列表只是字符串列表,按插入顺序排序。可以在列表的头部或尾部添加Redis
列表中的元素。
列表的最大长度为 2^32 - 1
个元素(即 4294967295
,每个列表可存储超过40亿个元素)。
Redis列表命令
下表列出了与列表相关的一些基本命令。
序号 | 命令 | 说明 |
---|---|---|
1 | BLPOP key1 [key2 ] timeout | 删除并获取列表中的第一个元素,或阻塞,直到有一个元素可用 |
2 | BRPOP key1 [key2 ] timeout | 删除并获取列表中的最后一个元素,或阻塞,直到有一个元素可用 |
3 | BRPOPLPUSH source destination timeout | 从列表中弹出值,将其推送到另一个列表并返回它; 或阻塞,直到一个可用 |
4 | LINDEX key index] | 通过其索引从列表获取元素 |
5 | LINSERT key BEFORE/AFTER pivot value | 在列表中的另一个元素之前或之后插入元素 |
6 | LLEN key | 获取列表的长度 |
7 | LPOP key | 删除并获取列表中的第一个元素 |
8 | LPUSH key value1 [value2] | 将一个或多个值添加到列表 |
9 | LPUSHX key value] | 仅当列表存在时,才向列表添加值 |
10 | LRANGE key start stop | 从列表中获取一系列元素 |
11 | LREM key count value | 从列表中删除元素 |
12 | LSET key index value | 通过索引在列表中设置元素的值 |
13 | LTRIM key start stop | 修剪列表的指定范围 |
14 | RPOP key | 删除并获取列表中的最后一个元素 |
15 | RPOPLPUSH source destination | 删除列表中的最后一个元素,将其附加到另一个列表并返回 |
16 | RPUSH key value1 [value2] | 将一个或多个值附加到列表 |
17 | RPUSHX key value | 仅当列表存在时才将值附加到列表 |
Redis 数据结构-集合(set)
Redis
集合是唯一字符串的无序集合。 唯一值表示集合中不允许键中有重复的数据。
在 Redis
中设置添加,删除和测试成员的存在(恒定时间O(1),而不考虑集合中包含的元素数量)。列表的最大长度为 2^32 - 1
个元素(即4294967295,每组集合超过40亿个元素)。
Redis集合命令
下表列出了与集合相关的一些基本命令。
序号 | 命令 | 说明 |
---|---|---|
1 | SADD key member1 [member2] | 将一个或多个成员添加到集合 |
2 | SCARD key | 获取集合中的成员数 |
3 | SDIFF key1 [key2] | 减去多个集合 |
4 | SDIFFSTORE destination key1 [key2] | 减去多个集并将结果集存储在键中 |
5 | SINTER key1 [key2] | 相交多个集合 |
6 | SINTERSTORE destination key1 [key2] | 交叉多个集合并将结果集存储在键中 |
7 | SISMEMBER key member | 判断确定给定值是否是集合的成员 |
8 | SMOVE source destination member | 将成员从一个集合移动到另一个集合 |
9 | SPOP key | 从集合中删除并返回随机成员 |
10 | SRANDMEMBER key [count] | 从集合中获取一个或多个随机成员 |
11 | SREM key member1 [member2] | 从集合中删除一个或多个成员 |
12 | SUNION key1 [key2] | 添加多个集合 |
13 | SUNIONSTORE destination key1 [key2] | 添加多个集并将结果集存储在键中 |
14 | SSCAN key cursor [MATCH pattern] [COUNT count] | 递增地迭代集合中的元素 |
Redis 事务(transaction)
Redis
事务允许在单个步骤中执行一组命令。以下是事务的两个属性:
- 事务中的所有命令作为单个隔离操作并按顺序执行。不可以在执行
Redis
事务的中间向另一个客户端发出的请求。 Redis
事务也是原子的。原子意味着要么处理所有命令,要么都不处理。
语法示例
Redis
事务由命令 MULTI
命令启动,然后需要传递一个应该在事务中执行的命令列表,然后整个事务由 EXEC
命令执行。
MULTI
List of commands here
EXEC
Redis事务命令
下表列出了与 Redis
事务相关的一些基本命令。
序号 | 命令 | 说明 |
---|---|---|
1 | DISCARD | 丢弃在MULTI之后发出的所有命令 |
2 | EXEC | 执行MULTI后发出的所有命令 |
3 | MULTI | 标记事务块的开始 |
4 | UNWATCH | 取消 WATCH 命令对所有 key 的监视。 |
5 | WATCH key [key …] | 监视给定的键以确定MULTI / EXEC块的执行 |
Redis 脚本
Redis
脚本用于使用 Lua解释器
来执行脚本。从 Redis 2.6.0
版开始内置到Redis
中。使用脚本的命令是 EVAL 命令。
语法
以下是 EVAL
命令的基本语法。
EVAL script numkeys key [key ...] arg [arg ...]
Redis事务命令
下表列出了与Redis脚本相关的一些基本命令。
序号 | 命令 | 说明 |
---|---|---|
1 | EVAL script numkeys key [key …] arg [arg …] | 执行一个Lua脚本。 |
2 | EVALSHA sha1 numkeys key [key …] arg [arg …] | 执行一个Lua脚本。 |
3 | SCRIPT EXISTS script [script …] | 检查脚本缓存中是否存在脚本。 |
4 | SCRIPT FLUSH | 从脚本缓存中删除所有脚本。 |
5 | SCRIPT KILL | 杀死当前正在执行的脚本。 |
6 | SCRIPT LOAD script | 将指定的Lua脚本加载到脚本缓存中。 |
Redis 配置(redis.conf)
在 Redis
中,在 Redis
的根目录下有一个配置文件( redis.conf
)。当然您可以通过 Redis
CONFIG
命令获取和设置所有的 Redis 配置。
语法 以下是 Redis
中的 CONFIG
命令的基本语法。
CONFIG GET CONFIG_SETTING_NAME
要获取所有配置设置,请使用
*
代替CONFIG_SETTING_NAME
编辑配置
要更新配置,可以直接编辑 redis.conf
文件,也可以通过 CONFIG set
命令更新配置。
语法 以下是 CONFIG SET
命令的基本语法。
CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
Redis 发送订阅(pub sub)
Redis
发布订阅( pub/sub
)是一种消息通信模式:发送者( pub
)发送消息,订阅者( sub
)接收消息。 Redis
发布订阅( pub/sub
)实现了消息系统,发送者(在 redis
术语中称为发布者)在接收者(订阅者)接收消息时发送消息。传送消息的链路称为信道。
在 Redis
中,客户端可以订阅任意数量的信道。
Redis发布订阅命令
下表列出了与 Redis
发布订阅相关的一些基本命令。
序号 | 命令 | 说明 |
---|---|---|
1 | PSUBSCRIBE pattern [pattern …] | 订阅一个或多个符合给定模式的频道。 |
2 | PUBSUB subcommand [argument [argument …] | 查看订阅与发布系统状态。 |
3 | PUBLISH channel message | 将信息发送到指定的频道。 |
4 | PUNSUBSCRIBE [pattern [pattern …] | 退订所有给定模式的频道。 |
5 | SUBSCRIBE channel [channel …] | 订阅给定的一个或多个频道的信息。 |
6 | UNSUBSCRIBE [channel [channel …] | 退订给定的频道。 |
Redis 基准测试(benchmark)
Redis
基准测试是通过同时运行 n
个命令来检查 Redis
的性能的实用程序。
语法
以下是基准测试命令的基本语法。
redis-benchmark [option] [option value]
以下是Redis基准测试中可用选项的列表。
序号 | 选项 | 说明 | 默认值 |
1 |
-h
|
指定服务器主机名 | 127.0.0.1 |
2 |
-p
|
指定服务器端口 | 6379 |
3 |
-s
|
指定服务器套接字 | |
4 |
-c
|
指定并行连接的数量 | 50 |
5 |
-n
|
指定请求的总数 | 10000 |
6 |
-d
|
指定SET/GET 值的数据大小(以字节为单位)
|
2 |
7 |
-k
|
1=keep alive, 0=reconnect | 1 |
8 |
-r
|
使用SET/GET/INCR 的随机键,SADD的随机值
|
|
9 |
-p
|
管道*[Math Processing Error]*请求 | 1 |
10 |
-h
|
指定服务器主机名 | |
11 |
-q
|
强制让Redis安装。 只显示query/sec 值
|
|
12 |
--csv
|
以CSV格式输出 | |
13 |
-l
|
生成循环,永久运行测试 | |
14 |
-t
|
只运行逗号分隔的测试列表 | |
15 |
-I
|
空闲模式。 只打开N个空闲连接并等待 |
示例1
以下示例通过调用100000
个命令检查Redis。
redis-benchmark -n 100000
示例2
下面的示例显示了Redis基准实用程序中多个选项的使用。
redis-benchmark -h IP -p PORD -a PASSWORK -t set,lpush -n 100000 -q
redis-benchmark -h IP -p PORD -a PASSWORK -n 100000 -c 1000 -d 1024 -l
【Redis】详细基础命令 - 学习笔记相关推荐
- 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总
本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...
- linux基础命令学习笔记(二)
linux基础命令学习笔记(二) 1.kill :终止进程 kill pid (唯一标示一个进程) kill -9 强制终止 kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...
- mysql基础命令学习笔记
这里不会涉及一些mysql数据库安装之类的知识,但是会将自己学习以及使用mysql一些最常用的mysql语句总结到本篇文章,作为自己的学习记录和笔记.基本的环境为CentOS 6.5 数据库为mysq ...
- linux基础命令学习笔记
友情提示:linux的在线查询man很强大,任何命令和参数都可以查到,是全英文的,刚开始不太习惯,看久了就习惯了! 1.RedHat和FedoraCore的软件包是rpm格式的,而Debian和Ubu ...
- linux账户密码 群组放在,linux基础命令学习(四)用户与群组
一.linux用户账号的管理 linux用户账号的管理主要包括用户添加.用户删除.用户修改. 添加用户账号就是在系统创建一个新账号,然后为新账号分为用户号.用户组.主目录和登录Shell等资源. 刚添 ...
- Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令
Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令 文章目录 Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令 info server info clie ...
- 网络存储 linux 访问,Linux基础教程学习笔记28——使用Samba访问网络存储
Linux基础教程学习笔记28--使用Samba访问网络存储 SMB用于Windows和类Linux系统直接的文件共享 安装samba client包: [root@linuxidc~]# yum i ...
- K8s基础知识学习笔记及部分源码剖析
K8s基础知识学习笔记及部分源码剖析 在学习b站黑马k8s视频资料的基础上,查阅了配套基础知识笔记和源码剖析,仅作个人学习和回顾使用. 参考资料: 概念 | Kubernetes 四层.七层负载均衡的 ...
- 厚基础Linux——学习笔记(一)
厚基础Linux--学习笔记(一) 命令清单 本期命令 history 问题一:命令执行记录需要详细的执行时间 问题二:某些命令带有隐私信息,不希望被记录下来 history -c history - ...
最新文章
- 信息处理进入了计算机领域,信 息 处 理 进 入 了 计 算 机 领 域 ,实 质 是 进 入 了()的 领 域 。...
- AngularJS——第3章 指令
- UI控件问题和XCode编译警告和错误解决方法集锦 (持续更新ing)
- 完全删除垃圾Q+!!!
- C#中实现命令行交互输入输出
- android 使用浏览器打开指定页面
- 怎样在Redis通过StackExchange.Redis 存储集合类型List
- linux下安装wls1036_generic.jar,weblogic 安装
- LeetCode Week 4:第 31 ~ 40 题
- 基于主成分分析的贵州省综合经济实力
- 二元序列游程编码c语言,基于游程编码数据压缩算法设计与实现.doc
- 目前主流的电脑操作系统
- 一文了解RoaringBitmap
- channel.QueueDeclare各个参数详解
- 外星人入侵游戏(Python3)
- 给自己分一个 MAC地址--locally administered address
- 6iypl8php,无线超方便 YPL TL-1/TL-3蓝牙音箱新品上市
- 【Learncpp中文翻译版】【1.9、1.10、1.11】
- VIVO手机测试指令代码大全
- 5G新型网络架构和5G新型网络架构关键技术
热门文章
- u盘安装linux双系统6,用U盘安装Centos6.5 + Win7 双系统
- java web nodejs_我的2013--从java web到nodejs
- python ip代理池_python实现ip代理池功能示例
- 深度学习100例 | 第33天:迁移学习-实战案例教程
- 深度学习100例-卷积神经网络(LeNet-5)深度学习里的“Hello Word” | 第22天
- 【Mysql】_1在centos7虚拟机上完成Mysql环境部署
- Python编程基础:第十四节 列表Lists
- 阿里云计算平台招AI解决方案产品经理
- 【机器学习PAI实践一】搭建心脏病预测案例
- Java 编程语言中很少被人了解的特性-statement label