BluRayCD Forum

 找回密码
 立即注册【分享大片】
查看: 451|回复: 1
收起左侧

[学习教程] CentOS系统下 Redis 2.6.14最新版安装配置详解

[复制链接]

5280

主题

222

回帖

4万

积分

Forum Admin

金币
250 枚
体力
18086 点

最高荣誉勋章

kmvodys 发表于 2013-8-5 00:04:33 | 显示全部楼层 |阅读模式
一. 关于 Redis

不说了,官方网站: https://redis.io/

二. 安装 Redis

Redis的代码遵循ANSI-C编写,可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行。而且Redis并不依赖任何非标准库,也没有编译参数必需添加。编译安装Redis,我们唯一需要的就是make。

1. 下载redis最新版本2.6.14
  1. cd /usr/local/src
  2. wget https://imgs.BluRayCD.cn/soft/linux/redis/redis-2.6.14.tar.gz
复制代码
2. 编译安装redis
  1. tar zxvf redis-2.6.14.tar.gz
  2. cd redis-2.6.14
  3. make
复制代码
make命令执行完成后,会在当前目录下生成4个可执行文件(src目录下),分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下:
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况
3. 建立Redis目录(建议,非必需)
执行以下命令建立相关目录并拷贝相关文件至目录中:
  1. sudo -s
  2. mkdir -p /usr/local/redis/bin
  3. mkdir -p /usr/local/redis/etc
  4. mkdir -p /usr/local/redis/var
  5. cp redis-server redis-cli redis-benchmark redis-stat /usr/local/redis/bin/
  6. cp redis.conf /usr/local/redis/etc/
复制代码
建立Redis目录,只是为了将Redis相关的资源更好的统一管理。你也可以使用
    make install
安装在系统默认目录

三. 配置 Redis

成功安装Redis后,直接执行redis-server即可运行 Redis,此时它是按照默认配置来运行的(默认配置不是后台运行)。如果我们希望Redis按我们的要求运行,则需要修改配置文件,Redis的配置文 件就是上面第二个cp操作的redis.conf文件,目前它被我们拷贝到了/usr/local/redis/etc/目录下。修改它就可以配置 redis server了。

1. redis.conf 配置参数:
#是否作为守护进程运行
daemonize yes
#如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid
pidfile redis.pid
#绑定主机IP,默认值为127.0.0.1
#bind 127.0.0.1
#Redis默认监听端口
port 6379
#客户端闲置多少秒后,断开连接,默认为300(秒)
timeout 300
#日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning
loglevel verbose
#指定日志输出的文件名,默认值为stdout,也可设为/dev/null屏蔽日志
logfile stdout
#可用数据库数,默认值为16,默认数据库为0
databases 16
#保存数据到disk的策略
#当有一条Keys数据被改变是,900秒刷新到disk一次
save 900 1
#当有10条Keys数据被改变时,300秒刷新到disk一次
save 300 10
#当有1w条keys数据被改变时,60秒刷新到disk一次
save 60 10000
#当dump .rdb数据库的时候是否压缩数据对象
rdbcompression yes
#本地数据库文件名,默认值为dump.rdb
dbfilename dump.rdb
#本地数据库存放路径,默认值为 ./
dir /usr/local/redis/var/
###########  Replication #####################
#Redis的复制配置
# slaveof <masterip> <masterport> 当本机为从服务时,设置主服务的IP及端口
# masterauth <master-password> 当本机为从服务时,设置主服务的连接密码
#连接密码
# requirepass foobared
#最大客户端连接数,默认不限制
# maxclients 128
#最大内存使用设置,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。
# maxmemory <bytes>
#是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
appendonly no
#更新日志文件名,默认值为appendonly.aof
#appendfilename
#更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。
# appendfsync always
appendfsync everysec
# appendfsync no

############# ADVANCED CONFIG ###############

#是否重置Hash表
activerehashing yes
注意:Redis官方文档对VM的使用提出了一些建议:
** 当你的key很小而value很大时,使用VM的效果会比较好.因为这样节约的内存比较大.
** 当你的key不小时,可以考虑使用一些非常方法将很大的key变成很大的value,比如你可以考虑将key,value组合成一个新的value.
** 最好使用linux ext3 等对稀疏文件支持比较好的文件系统保存你的swap文件.

2. 调整系统内核参数
如果内存情况比较紧张的话,需要设定内核参数:
  1. echo 1 > /proc/sys/vm/overcommit_memory
复制代码
这里说一下这个配置的含义:/proc/sys/vm/overcommit_memory
该文件指定了内核针对内存分配的策略,其值可以是0、1、2。
0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2,表示内核允许分配超过所有物理内存和交换空间总和的内存
Redis在dump数据的时候,会fork出一个子进程,理论上 child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child, 如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)

四. 运行 Redis

1. 运行服务
  1. /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
复制代码
即可在后台启动redis服务,确认运行了之后,可以用redis-benchmark命令测试看看,还可以通过redis-cli命令实际操作一下,比如:
  1. /usr/local/redis/bin/redis-cli set foo bar
复制代码
OK
  1. /usr/local/redis/bin/redis-cli get foo
复制代码
bar

2. 关闭服务
  1. redis-cli shutdown
复制代码
如果端口变化可以指定端口:
  1. redis-cli -p 6380 shutdown
复制代码
3. 保存/备份
数据备份可以通过定期备份该文件实现。
因为redis是异步写入磁盘的,如果要让内存中的数据马上写入硬盘可以执行如下命令:
redis-cli save 或者 redis-cli -p 6380 save(指定端口)
注意,以上部署操作需要具备一定的权限,比如复制和设定内核参数等。
执行redis-benchmark命令时也会将内存数据写入硬盘。
4. 同步机制
redis实现的同步机制相对简单,缺少同步机制常见的check point和校验机制。
在 运行时,如果master -> slave同步请求转发被丢弃, slave将无法恢复该请求的相关信息,直到slave重启时从master全量加载数据时才能修复。因此,建议使用redis尽量利用其 key/value和value支持多种类型的特性,存储一些相对不重要的数据。


具体应用和配置请参阅:phpredis模块的安装配置
论坛网友  发表于 2021-3-11 05:39:47
媒体编导毕业肤白貌美性格温柔良家人妻型美少妇酒店援交妹子做爱很投入像情侣一样享受爆操表情销魂呻吟欲仙欲死
【影片格式】:MP4
【影片大小】:508MB
【影片时间】:33:35
【影片说明】:无


在线观看地址:bxm5.pw

本版积分规则

小黑屋|手机版|Archiver|4K蓝光论坛

GMT+8, 2024-12-22 13:46

Copyright © 2001-2021, Gadaddy Cloud.

快速回复 返回顶部 返回列表