在 centos 7.2 系统上,安装使用redis。了解学习redis功能及特性。

版本: 3.2.4

1.安装:

  # yum install redis

2.配置:

/etc/logrotate.d/redis
/etc/redis-sentinel.conf
/etc/redis.conf
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf

3.服务:

/usr/lib/systemd/system/redis-sentinel.service

/usr/lib/systemd/system/redis.service

启动服务:

    使用现有rpm,会构建一个systemctl控制的服务单元,通过 #service 或 #systemctl 命令控制服务的启动和关闭

             #service redis start/stop/status   或

             #systemctl status/stop/status redis.service

     或使用 redis-sever启动,systemctl的redis服务单元使用的也是 redis-server命令。

             #redis-server  config                详见 redis-server 命令介绍

             #redis-server /etc/redis.conf --daemonize yes

关闭服务:

            #service redis stop

        或

       #redis-cli shutdown

4.日志:

/var/log/redis/redis.log

5.dump数据

根据配置文件中的设置,redis定期保存内存数据到磁盘。

缺省文件名:dump.rdb

缺省路径:    /var/log/redis

5.命令:

/usr/bin/redis-benchmark    性能测试工具
/usr/bin/redis-check-aof      aof文件检测和修复工具  Redis AOF file checker and repairer
/usr/bin/redis-check-rdb     rdb文件检测器
/usr/bin/redis-cli        客户端操作
/usr/bin/redis-sentinel        Redis实例的监控管理、通知和实例失效备援服务,是Redis集群的管理工具。是redis-server的一个链接,带有--sentionel 选项。 symbolic link to `redis-server'  
/usr/bin/redis-server       启动redis服务

 

redis-cli

  在 ~/.rediscli_history   命令操作历史记录

         ~/.redisclirc            设置一些选项

6.使用:

持久化

主备

支持的数据容量

7.参考:

 http://skly-java.iteye.com/blog/2167400

http://lib.csdn.net/base/redis

8.相关知识:

  Transparent Huge Pages (THP)  ,linux内核支持。如果使用,或导致redis的延时和内存使用。 通过echo never > /sys/kernel/mm/transparent_hugepage/enabled 命令,关闭 THP。 在 /etc/rc.local 文件中加入关闭命令,以免系统重启,THP功能被打开。

      vm.overcommit_memory = 1    在 /etc/sysctl.conf文件中增加后重启或 命令 sysctl vm.overcommit_memory=1, 解决在低内存情况下,失败的情况。

    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(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)。

  /proc/sys/net/core/somaxconn   在centos 7.2上,缺省为128。 redis的配置文件/etc/redis.conf中tcp-backlog缺省为511,导致redis监听端口队列无法达到511. 还受 tcp_max_syn_backlog 的影响。

 

posted on 2016-11-30 18:49  doscho  阅读(697)  评论(1编辑  收藏  举报