我爱编程

在 Windows 下配置 Redis(不含集群)

2017-02-02  本文已影响0人  缺水的海豚

本文只涉及 Redis 在 Windows 中的配置(不含集群)

简单介绍

Redis是一款开源的、高性能的键 - 值存储(Key - Value store)。和 Memcached 类似,Redis 常被称作是一款 Key - Value 内存存储系统(或内存数据库)。

同时,由于它支持丰富的数据结构,又被称为一种数据结构服务器(Data Structure Server)。

但是,Redis 官方并不支持 Windows微软开源团队 将其移植到了 Windows 中。

在实际生产环境中,还是建议将 Redis 部署在 CentOS 中来进行,毕竟 Redis 全部是通过 API 进行操作,跨平台访问是天生的。

  • 配置环境:Windows 7 Pro x64

Redis 安装

安装很简单,直接在上面的 Windows 版中下载 msi,双击运行即可安装(这里的版本是 v3.2.100)。

稍微说明一下:在安装过程中,最好把上图的这个选项勾上,方便在命令行中随时执行相应的指令。

安装好之后,会这系统服务里面安装一个 Redis 的节点服务,并且已经启动了。

接下来,就可以进行操作了。

常规操作

登录到 Redis 服务器,在命令行中执行以下命令(也可以直接双击安装目录下的 redis-cli.exe 登录到默认端口的 Redis 服务器)

// -h:主机 IP
// -p:主机端口
// 如果要登录集群节点,还需添加一个参数:-c
redis-cli -h 127.0.0.1 -p 6379

由于在安装的时候,已经将 Redis 的安装路径注册到系统 PATH 了,所以,在命令行的随便哪个位置,都可以执行 Redis 的指令。

看到如下界面,就表示登录成功了:

登录成功

Redis 安装好以后,可通过常用的几个指令进行查看和操作:

info 指令:查看 Redis 服务器的全部信息

Redis 整体信息

info 后面还可以跟具体某个部分的信息,只看这一项的具体内容,就是上图中,井号 “#” 后面的内容,比如:

info server   // 查看服务器基本信息
info memory   // 查看内存使用情况
// ……

关于 info 指令的详细说明,参见这里(英文)

关于 info memory 指令的结果分析

这个指令主要是查看服务器内存使用情况的,在命令行执行之后,如下所示:

info memory

该指令主要显示了当前内存的占用情况、碎片情况,还有就是内存可占用的最大空间以及占用达到最大空间后的处理策略。

先把这些指标简单分为两大类:

  1. 末尾没有带 “_human”:即该节点的实际数值
  2. 末尾带有 “_human”:即便于人类理解的数值(自动把实际数值按 1024 转换而来)

内存相关的指标说明:

  • used_memory:由 Redis 分配器分配的内存总量,以字节(byte)为单位。

特别说明:

当 Redis 释放内存时,分配器会(也可能不会)将内存返还给操作系统。
如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值就可能和操作系统显示的 Redis 内存占用的值不一致。
查看 used_memory_peak 的值,即可以验证这种情况是否发生。

内存碎片是怎么产生的呢?简单来说:Redis 需要一个连续的内存空间来存储 1G 的数据,但是当前内存已经没有 1G 连续的空间了,这样,操作系统不得不将多个不连续的空间组合起来提供 1G 的大小,这就导致了内存碎片的产生。

*mem_fragmentation_ratio 稍大于 1 是合理的。这个值表示内存碎片率比较低,也说明 Redis 没有发生内存交换。

一般来说,碰到这样的情况,建议从三个方面进行优化:

更多优化方法,可参考这里

在运行过程中

比如:在 Redis 运行中,设置最大可用内存空间,输入以下命令:

config set "maxmemory" "300mb"

一般来说,如果设置了具体的最大可用内存空间,一定要关注过期策略:maxmemory-policy

过期策略种类解释(后有名词解释):

  • volatile-lru:对 “过期集合” 中的数据采取 LRU 算法。将(已经过期 ÷ LRU)的数据优先移除。如果 “过期集合” 中的数据全部移除了,仍不能满足内存需求,则将 OOM。

说明:
1. 过期集合:如果对 key 使用 expire 指令指定了过期时间,那么,此 key 将会被添加到 “过期集合” 中。
2. LRU:Least Recently Used,近期最少使用,详见百科
3. TTL:Time To Live,最小存活时间,详见百科
4. OOM:Out Of Memory,Killer 会干掉 Redis 进程,俗称:死机。
5. 以上全部内容的官方说明(英文)

至此,在 Windows 下配置 Redis 就差不多结束了。

上一篇 下一篇

猜你喜欢

热点阅读