“Redis:常用命令”的版本间差异
跳到导航
跳到搜索
无编辑摘要 |
|||
第1行: | 第1行: | ||
[[category:Redis]] | [[category:Redis]] | ||
== 关于 == | |||
<pre> | |||
Remote Dictionary Server(Redis)是一个开源的由 Salvatore Sanfilippo 使用 ANSI C 语言编写的'''key-value'''数据存储服务器。其值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型,所以它通常也被称为数据结构服务器。 | |||
</pre> | |||
Redis 本质上是一个 '''Key-Value 类型的内存数据库''',很像 memcached,整个数据库统统加载在'''内存当中进行操作''',定期通过异步操作把数据库数据 '''flush''' 到硬盘上进行保存。 | |||
''' | |||
* 因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的 Key-Value DB。 | |||
* Redis的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外【单个 value 的最大限制是 '''1 GB'''】,不像 memcached 只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。 | |||
*: 比方说用他的 List 来做 FIFO 双向链表,实现一个轻量级的高性 能消息队列服务,用他的 Set 可以做高性能的 tag 系统等等。【???】 | |||
* 另外 Redis 也可以对存入的 Key-Value 设置 expire 时间,因此也可以被当作一个功能加强版的 memcached 来用。 | |||
Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在'''较小数据量的高性能操作和运算'''上。 | |||
=== 特点 === | |||
redis 的特点: | |||
# redis 足够简单和稳定 | |||
# 支持丰富的数据结构 | |||
# '''内存存储'''读写性能优秀 | |||
# 提供'''持久化'''的支持 | |||
# 支持部分'''事务'''操作 | |||
=== 关于 NoSQL === | |||
redis 属于'''NoSQL'''数据库,NoSQL 数据库叫'''非关系型数据库''',('''NoSQL = Not Only SQL'''),意即“不仅仅是SQL”。 | |||
按存储方式不同,数据库可以分为以下类型: | |||
* key-value 存储:“Berkeley DB”、“'''MemcacheDB'''”、“'''Redis'''”;【Memcache不能持久化???】 | |||
* 文档存储:“'''MongoDB'''”、“CouchDB”; | |||
* 列存储:“Hbase”、“Cassandra”; | |||
== 基础命令 == | |||
redis手册: | redis手册: | ||
* redis英文版命令大全:“https://redis.io/commands” | * redis英文版命令大全:“https://redis.io/commands” | ||
第74行: | 第40行: | ||
基础命令: | |||
# 验证安装:(redis- | # 验证安装:(redis-cli等链接后)输入“'''ping'''”(redis返回“'''PONG'''”表示服务运行正常); | ||
# 切换库命令:“'''select <db>'''”; | # 切换库命令:“'''select <db>'''”; | ||
# 删除所有库的数据:“'''flushall'''”; | # 删除所有库的数据:“'''flushall'''”; | ||
# 删除当前库的数据:“'''flushdb'''”; | # 删除当前库的数据:“'''flushdb'''”; | ||
# | # 获得 redis 的所有配置值:“config get *”; | ||
# redis- | # redis-cli 退出当前 redis 连接:“'''exit'''”或“'''quit'''”; | ||
# 查看当前数据库中key的数目:“'''dbsize'''”; | |||
# 查看 redis 服务器的统计信息:“info”; | |||
# | |||
NOTE: | |||
* “'''redis.conf'''”是 Redis 的配置文件; | |||
* redis 默认为 '''16''' 个库(默认自动使用 '''0''' 号库); | |||
* | |||
== 安全 == | == 安全 == | ||
以下都是在配置文件“'''redis.conf'''”中进行修改。 | |||
=== 设置密码 === | === 设置密码 === | ||
配置文件中: | |||
<syntaxhighlight lang="properties"> | <syntaxhighlight lang="properties"> | ||
requirepass 123456 | requirepass 123456 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* | |||
客户端连接则需要密码:“'''AUTH 123456'''”或者“'''redis-cli -h 127.0.0.1 -p 6379 -a 123456'''”; | |||
* 因为 redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K 次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。 | |||
=== 绑定ip === | === 绑定ip === | ||
配置文件中: | |||
<syntaxhighlight lang="properties"> | <syntaxhighlight lang="properties"> | ||
# bind 127.0.0.1 | # bind 127.0.0.1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# 取消 ip 绑定注释(去掉 #), | |||
# 修改“127.0.0.1”为允许访问 redis 服务器的ip地址: | |||
=== | === 禁用命令、重命名命令 === | ||
配置文件中: | |||
<syntaxhighlight lang="properties"> | <syntaxhighlight lang="properties"> | ||
rename-command FLUSHALL oyfekmjvmwxq5a9c8usofuo369x0it2k # 重命名FLUSHALL命令 | rename-command FLUSHALL oyfekmjvmwxq5a9c8usofuo369x0it2k # 重命名FLUSHALL命令 | ||
第775行: | 第85行: | ||
rename-command CONFIG "" # 禁止CONFIG命令 | rename-command CONFIG "" # 禁止CONFIG命令 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* 对于禁用“FLUSHALL”命令,需要保证“appendonly. | * 对于禁用“FLUSHALL”命令,需要保证“appendonly.aof”文件没有 flushall 命令,否则服务器无法启动; | ||
=== 修改默认端口 === | === 修改默认端口 === | ||
配置文件中: | |||
<syntaxhighlight lang="properties"> | <syntaxhighlight lang="properties"> | ||
port 6379 | port 6379 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* | * 修改 redis 的端口,这一点很重要,使用默认的端口很危险; |
2021年5月9日 (日) 20:35的版本
关于
Remote Dictionary Server(Redis)是一个开源的由 Salvatore Sanfilippo 使用 ANSI C 语言编写的'''key-value'''数据存储服务器。其值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型,所以它通常也被称为数据结构服务器。
Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。
- 因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的 Key-Value DB。
- Redis的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外【单个 value 的最大限制是 1 GB】,不像 memcached 只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。
- 比方说用他的 List 来做 FIFO 双向链表,实现一个轻量级的高性 能消息队列服务,用他的 Set 可以做高性能的 tag 系统等等。【???】
- 另外 Redis 也可以对存入的 Key-Value 设置 expire 时间,因此也可以被当作一个功能加强版的 memcached 来用。
Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。
特点
redis 的特点:
- redis 足够简单和稳定
- 支持丰富的数据结构
- 内存存储读写性能优秀
- 提供持久化的支持
- 支持部分事务操作
关于 NoSQL
redis 属于NoSQL数据库,NoSQL 数据库叫非关系型数据库,(NoSQL = Not Only SQL),意即“不仅仅是SQL”。
按存储方式不同,数据库可以分为以下类型:
- key-value 存储:“Berkeley DB”、“MemcacheDB”、“Redis”;【Memcache不能持久化???】
- 文档存储:“MongoDB”、“CouchDB”;
- 列存储:“Hbase”、“Cassandra”;
基础命令
redis手册:
- redis英文版命令大全:“https://redis.io/commands”
- redis中文版命令大全:“http://redisdoc.com/”
基础命令:
- 验证安装:(redis-cli等链接后)输入“ping”(redis返回“PONG”表示服务运行正常);
- 切换库命令:“select <db>”;
- 删除所有库的数据:“flushall”;
- 删除当前库的数据:“flushdb”;
- 获得 redis 的所有配置值:“config get *”;
- redis-cli 退出当前 redis 连接:“exit”或“quit”;
- 查看当前数据库中key的数目:“dbsize”;
- 查看 redis 服务器的统计信息:“info”;
NOTE:
- “redis.conf”是 Redis 的配置文件;
- redis 默认为 16 个库(默认自动使用 0 号库);
安全
以下都是在配置文件“redis.conf”中进行修改。
设置密码
配置文件中:
requirepass 123456
客户端连接则需要密码:“AUTH 123456”或者“redis-cli -h 127.0.0.1 -p 6379 -a 123456”;
- 因为 redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K 次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。
绑定ip
配置文件中:
# bind 127.0.0.1
- 取消 ip 绑定注释(去掉 #),
- 修改“127.0.0.1”为允许访问 redis 服务器的ip地址:
禁用命令、重命名命令
配置文件中:
rename-command FLUSHALL oyfekmjvmwxq5a9c8usofuo369x0it2k # 重命名FLUSHALL命令
rename-command FLUSHALL "" # 禁用FLUSHALL命令
rename-command FLUSHDB "" # 禁止FLUSHDB命令
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # 重命名CONFIG命令
rename-command CONFIG "" # 禁止CONFIG命令
- 对于禁用“FLUSHALL”命令,需要保证“appendonly.aof”文件没有 flushall 命令,否则服务器无法启动;
修改默认端口
配置文件中:
port 6379
- 修改 redis 的端口,这一点很重要,使用默认的端口很危险;