《Redis官方教程》-Redis的配置

原文链接   译者:carvin   校对:方腾飞

Redis支持采用其内置默认配置的方式来进行启动,而不需要提前配置任何文件,但是这种启动方式只推荐在测试和开发环境中使用。

更好的方式是通过提供一个Redis的配置文件来对Redis进行配置, 这个配置文件一般命名为’redis.conf’。

‘redis.conf’ 文件中包含一系列格式非常简单的配置项,如下所示:

keyword argument1 argument2 ... argumentN

简单配置示例:

slaveof 127.0.0.1 6380 

如果说配置参数值中包含空格,则需要为其添加双引号,如下所示:

requirepass "hello world"

所有这些配置项的列表,以及它们的意思和用法,都可以参考Redis发行版中的redis.conf自说明示例文档。


通过命令行传递参数

自Redis 2.6 开始,Redis就可以支持通过命令行来传递配置参数。这个功能对测试来说非常有用。
下面这个是例子是使用6380端口来启动一个新的Redis实例,并且从实例在127.0.0.1的6379端口运行。

./redis-server --port 6380 --slaveof 127.0.0.1 6379

命令行传递参数的格式和在redis.conf文件中配置参数的格式是一样的, 唯一的不同之处是在命令行参数关键字前需要添加’–‘前缀。

注意:采用这种方式,其内部会在内存中生成一个临时的配置文件(可能会把用户传递的任意配置项都添加到配置文件里),传递的参数会转换成redis.conf文件的格式。


运行时改变Redis配置

Redis支持在运行时通过使用命令CONFIG SETCONFIG GET 来对配置项进行重新配置,以及通过编程来查询Redis当前的配置项,设置和查询不需要停止和重启服务。

并不是所有的配置项都支持这种配置方式,但是大部分是支持的。具体的支持情况请参考:
CONFIG SETCONFIG GET

注意:运行时动态修改的配置项 不会影响redis.conf文件中的配置,在下一次重启时,又会恢复以前的配置。

如果通过CONFIG SET修改了某些配置项,还确定要同时修改’redis.conf’配置文件中相对应的配置项。则需要你自己手动去修改,或者使用Redis 2.8。在Redis2.8 中,你只要使用CONFIG REWRITE 来重写参数项,将自动去扫描你的’redis.conf’文件,如果发现配置的值和你要修改的值不匹配的话,则会将配置的值更新为新设置的值。如果对应的配置项不存在,则会设置为默认值而不是新添加的。配置文件中的注释将会被保留。


将Redis配置为缓存

如果你计划将Redis当作一个缓存来使用,而且每一个key都需要有一个过期设置,你可以考虑使用如下的配置(示例中假设最大内存限制为2M):

maxmemory 2mb
maxmemory-policy allkeys-lru

在这个配置中,应用程序不需要再使用 ‘EXPIRE’ 命令(或者相同的命令)为每一个存活的key设置一个过期时间,因为所有的key在都将在达到2M内存限制时,使用近似LRU算法对其进行淘汰。

基本上,采用这个配置,Redis的表现将与memcached类似。更详细的文档请参考使用Redis作为LRU缓存。 

时间: 2024-11-02 23:39:12

《Redis官方教程》-Redis的配置的相关文章

《Redis官方教程》-Redis安全

原文链接 译者:humyna 本节提供了Redis安全主题概述,包括控制访问.代码安全以及诸于恶意注入攻击拦截等. 对于安全相关的交流可以在github上建一个issue:如果担心沟通的安全,可以使用文末的GPG密钥. Redis一般安全模型 Reids被设计用于在信任的环境中访问的被授权客户端使用,这意味着将Redis直接暴露到internet上,或者直接被环境中的非授权的客户端通过TCP端口访问都不是一个好的主意. 例如,一个web应用使用Redis作为数据库.缓存或者消息系统,前端生成页面

《Redis官方教程》-基准测试

原文连接  译者:looyup Redis有多快? Redis 包含了工具程序redis-benchmark,它可以模拟运行命令,相当于模拟N个客户端同时发送总数M个查询(和apache的ab工具程序类似).下面是在linux系统上执行benchemark后的完整输出,支持的选项如下: Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <b

《Redis官方教程》Redis集群规范

原文链接(on 20 Jul)  作者:antirez  译者:carlvine   Redis集群规范 欢迎来到Redis集群规范.在这里你可以找到有关Redis的算法和设计的基本原理.这篇文章是一项正在进行的工作,因为它是不断地与Redis的实际实现同步.   主要属性和设计原理 Redis的集群目标   Redis集群是一个分布式的实现,具有以下目标,按设计的重要性排序: 高性能,并且多达1000个节点的线性可扩展性.没有代理,使用异步复制,并且在进行赋值时没有合并操作. 可接受程度的写安

《Redis官方教程》-FAQ

原文链接   译者:Alexandar Mahone  校对:方腾飞(红体标记重点) 为什么Redis不同于其他的键值存储数据库? 有两个主要原因: Redis发展方向不同与其他键值数据库,它能包含很多复杂数据类型,对这些数据类型操作都是原子的.Redis数据类型与基本数据结构强相关,直接暴露给程序员,没有增加抽象层. Redis是一个内存数据库,而不是持久化在硬盘数据库中,因此为了实现高速读写,数据集大小不能超过内存.内存数据库另一个优点是,内存数据库相对于硬盘数据库非常容易操作复杂数据结构,

《Redis官方教程》Redis集群规范(二)

心跳数据包内容 Ping 和 Pong 数据包都包含着一个头部(header),这在这类数据包(比如请求投票的数据包)中是很常见的.一个特殊的 报文片段就是 Ping 包和 Pong 包里一个特殊部分. 常见头部会包含以下这些信息: 节点 ID,在节点第一次创建的时候赋值的一个 160 bit 的伪随机字符串,在Redis 集群节点永远都保持不变. currentEpoch和 configEpoch 两个字段,用来挂载 Redis 集群使用的分布式算法(这会在下一节中详细解释).如果节点是sla

《Redis官方教程》Redis集群规范(一)

Redis集群规范 欢迎来到Redis集群规范.在这里你可以找到有关Redis的算法和设计的基本原理.这篇文章是一项正在进行的工作,因为它是不断地与Redis的实际实现同步.   主要属性和设计原理 Redis的集群目标   Redis集群是一个分布式的实现,具有以下目标,按设计的重要性排序: 高性能,并且多达1000个节点的线性可扩展性.没有代理,使用异步复制,并且在进行赋值时没有合并操作. 可接受程度的写安全:当客户端与大多数master节点建立连接后,系统努力(使用最优的方式)保持来自客户

《Redis官方教程》-Redis加密

虽然给Redis增加SSL特性被提议了很多次,然而目前我们认为只有小部分用户需要SSL支持,事实上由于不同方案侧重点不同,使用不同渠道策略可能会更好.我们在将来可能改变这个计划,但是目前推荐使用如下项目,它可以满足多数加密场景: Spiped是一个用于创建套接字地址之间的对称加密和认证管道的工具,以便连接到一个地址的源端(例如,在本地主机上一个UNIX套接字),可以透明地建立连接到另一个地址(例如,一个不同系统上的UNIX套接字). 该软件是与Redis本身类似架构实现的,它是一个自包含4000

《Redis官方教程》- 事件库

为什么需要一个事件库(Event Library)? 让我们通过一系列Q&A来弄明白. Q:你期望网络服务器都做些什么事情? A:在它监听的端口上等待连接的到来,然后接收(accpet)它们. Q:调用accept会产生一个描述符,我该怎么处理它? A:先保存这个描述符,然后对它进行非阻塞(non-blocking)的读写(read/write)操作. Q:为什么读写操作必须用非阻塞的方式呢? A:如果服务器阻塞在文件(在Unix世界socket也是文件)I/O操作上,这期间它还怎么处理其他连接

Redis数据库的安装与配置

目录 下载最新的redis数据库 本地编译安装 进行配置 下载最新的redis数据库 redis官方下载地址 redis官网下载地址 优先选择下载稳定版 # shell命令下载 $ wget http://download.redis.io/releases/redis-4.0.2.tar.gz 下载完成后进行解压编译和安装 tar解压命令简书文章地址 # 解压时所在目录为redis-4.0.2.tar.gz所在的目录 $ tar xvf redis-4.0.2.tar.gz $ cd redi