zoukankan      html  css  js  c++  java
  • CentOS 下 redis 安装与配置

    CentOS 下 redis 安装与配置

     

    1、到官网上找到合适版本下载解压安装

    Xml代码  收藏代码
    1. [root@java src]# wget -c http://redis.googlecode.com/files/redis-2.4.7.tar.gz  
    2. [root@java src]# tar -zxv -f redis-2.4.7.tar.gz   
    3. [root@java src]# cd /usr/local/src/redis-2.4.7  
    4. [root@java redis-2.4.7]# make  #编译,编译完成后就可以测试使用了,但是为了做成后台服务,最好把它安装到系统上  
    5. [root@java redis-2.4.7]# make install  #安装会把redis的命令被拷贝到/usr/local/bin下面  

    2、配置redis.conf文件

    Java代码  收藏代码
    1. [root@java redis-2.4.7]# cp ./redis.conf /etc/redis.conf  
    2. 把daemonize no 改成 daemonize yes,这样启动redis时就会成会后台服务  
    3. useradd redis  
    4. mkdir -p /var/lib/redis  
    5. mkdir -p /var/log/redis  
    6. chown redis.redis /var/lib/redis  #db文件放在这里,要修改redis.conf的dir属性  

    3、配置启动脚本

    Xml代码  收藏代码
    1. ###########################  
    2. PATH=/usr/local/bin:/sbin:/usr/bin:/bin  
    3.    
    4. REDISPORT=6379  
    5. EXEC=/usr/local/bin/redis-server  
    6. REDIS_CLI=/usr/local/bin/redis-cli  
    7.    
    8. PIDFILE=/var/run/redis.pid  
    9. CONF="/etc/redis.conf"  
    10.    
    11. case "$1" in  
    12.     start)  
    13.         if [ -f $PIDFILE ]  
    14.         then  
    15.                 echo "$PIDFILE exists, process is already running or crashed"  
    16.         else  
    17.                 echo "Starting Redis server..."  
    18.                 $EXEC $CONF  
    19.         fi  
    20.         if [ "$?"="0" ]  
    21.         then  
    22.               echo "Redis is running..."  
    23.         fi  
    24.         ;;  
    25.     stop)  
    26.         if [ ! -f $PIDFILE ]  
    27.         then  
    28.                 echo "$PIDFILE does not exist, process is not running"  
    29.         else  
    30.                 PID=$(cat $PIDFILE)  
    31.                 echo "Stopping ..."  
    32.                 $REDIS_CLI -p $REDISPORT SHUTDOWN  
    33.                 while [ -x ${PIDFILE} ]  
    34.                do  
    35.                     echo "Waiting for Redis to shutdown ..."  
    36.                     sleep 1  
    37.                 done  
    38.                 echo "Redis stopped"  
    39.         fi  
    40.         ;;  
    41.    restart|force-reload)  
    42.         ${0} stop  
    43.         ${0} start  
    44.         ;;  
    45.   *)  
    46.     echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
    47.         exit 1  
    48. esac  
    49. ##############################  

    把上面代码放到 /etc/init.d/redis里保存,并添加执行属性

    Xml代码  收藏代码
    1. [root@java redis-2.4.7]# chmod +x /etc/init.d/redis  

    4、启动和测试redis

    Java代码  收藏代码
    1. [root@java redis-2.4.7]# /etc/init.d/redis start   #启动  
    2. [root@java redis-2.4.7]# /etc/init.d/redis stop    #停止  
    3. [root@java redis-2.4.7]# ps -aux | grep redis    #查看redis进程是否启动  
    4.   
    5. 启动redis客户端进行测试  
    6. [root@java redis-2.4.7]# redis-cli  
    7. redis 127.0.0.1:6379> set test test  
    8. OK  
    9. redis 127.0.0.1:6379> get test  
    10. "test"  
    11. redis 127.0.0.1:6379> exit  

    这个配置文件说明如下:

    redis.conf:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    daemonize yes  #---默认值no,该参数用于定制redis服务是否以守护模式运行。---
    pidfile /usr/local/webserver/redis/run/redis.pid  #默认值/var/run/redis.pid,指定redis服务的进程号文件路径,以守护模式运行时需要配置本参数;
    port 6379   #默认值6379,指定redis服务的端口
    # bind 127.0.0.1  #绑定ip,默认是本机所有网络设备;
    timeout 0   #客户端空闲n秒后断开连接;默认是 0 表示不断开。
    loglevel notice  ###设置服务端的日志级别,有下列几种选择:
        debug:记录详细信息,用于开发或调试;
        verbose:提供很多有用的信息,但是又不像debug那么详尽,默认就是这一选项;
        notice:适度提醒,多用于产品环境;
        warning:仅显示重要的警告信息;
    logfile stdout   ##指定日志的输出路径,默认值stdout,表示输出到屏幕,守护模式时则输出到/dev/null
    如果要输出日志到syslog中,可以启动syslog-enabled yes,默认该选项值为no。
    # syslog-enabled no
    databases 16   ###指定数据库的数量,默认为16个,默认使用的数据库是DB 0
    ----以下为快照相关的设置:------
    #   save <seconds> <changes>  ##指定多长时间刷新快照至磁盘,这个选项有两个属性值,只有当两个属性值均满足时才会触发;可以设置多种级别,例如默认的参数文件中就设置了:
    save 900 1:每900秒(15分钟)至少一次键值变更时被触发;
    save 300 10:每300秒(5分钟)至少10次键值变更时被触发;
    save 60 10000:每60秒至少10000次键值变更时被触发;
    save 900 1
    save 300 10
    save 60 10000
    rdbcompression yes  ##默认值yes,当dump数据库时使用LZF压缩字符串对象,如果CPU资源比较紧张,可以设置为no,选择不压缩;
    rdbchecksum yes
    # The filename where to dump the DB  数据库文件名
    dbfilename dump.rdb  ##默认值dump.rdb,dump到文件系统中的文件名
    dir /usr/local/webserver/redis/db  ##默认值./,即当前目录,dump出的数据文件的存储路径;
    ----以下为复制相关的设置,复制默认是不启用的,因此在默认的参数文件下列表参数均被注释----
    # slaveof <masterip> <masterport>  ##指定主端ip和端口,用于创建一个镜像服务
    # masterauth <master-password>  ##如果master配置了密码的话,此处也需做设置;
    slave-serve-stale-data yes  ##默认值yes。当slave丢失与master端的连接,或者复制仍在处理,那么slave会有下列两种表现:
    当本参数值为yes时,slave为继续响应客户端请求,尽管数据已不同步甚至没有数据(出现在初次同步的情况下);
    当本参数值为no时,slave会返回"SYNC with master in progreee"的错误信息;
    slave-read-only yes  ##默认从Redis是只读模式
    # repl-ping-slave-period 10  ###默认值10,指定slave定期ping master的周期;
    # repl-timeout 60  ##默认值60,指定超时时间。注意本参数包括批量传输数据和ping响应的时间。
    ------以下为安全相关的设置------
    # requirepass foobared  ###指定一个密码,客户端连接时也需要通过密码才能成功连接;
    # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52  ###重定义命令,例如将CONFIG命令更名为一个很复杂的名字:
    # rename-command CONFIG ""  取消这个命令;
    -----以下为资源限制方面的设置------
    # maxclients 10000  ##指定客户端的最大并发连接数,默认是没有限制,直到redis无法创建新的进程为止,设置该参数值为0也表示不限制,如果该参数指定了值,当并发连接达到指定值时,redis会关闭所有新连接,并返回'max number of clients reached'的错误信息;
    # maxmemory <bytes>  ###设置redis最大可使用内存。当达到最大内存后,redis会尝试按照设置的回收策略删除键值。如果无法删除键值,或者保留策略设置为不清除,那么redis就会向发出内存的请求返回错误信息。当把redis做为一级LRU的缓存时本参数较为有用。
    # maxmemory-policy volatile-lru  ###默认值volatile-lru,指定清除策略,有下列几种方法:
    volatile-lru -> remove the key with an expire set using an LRU algorithm
    allkeys-lru -> remove any key accordingly to the LRU algorithm
    volatile-random -> remove a random key with an expire set
    allkeys->random -> remove a random key, any key
    volatile-ttl -> remove the key with the nearest expire time (minor TTL)
    noeviction -> don't expire at all, just return an error on write operations
    # maxmemory-samples 3    ###默认值3,LRU和最小TTL策略并非严谨的策略,而是大约估算的方式,因此可以选择取样值以便检查。
    -----以下为APPEND的配置----
    ONLY模式的设置,默认情况下redis采用异步方式dump数据到磁盘上,极端情况下这可能会导致丢失部分数据(比如服务器突然宕机),如果数据比较重要,不希望丢失,可以启用直写的模式,这种模式下redis会将所有接收到的写操作同步到appendonly.aof文件中,该文件会在redis服务启动时在内存中重建所有数据。注意这种模式对性能影响非常之大。
    appendonly no  ##默认值no,指定是否启用直写模式;
    # appendfilename appendonly.aof  ###直写模式的默认文件名appendonly.aof
    appendfsync:调用fsync()方式让操作系统写数据到磁盘上,数据同步方式,有下列几种模式:
        always:每次都调用,比如安全,但速度最慢;
        everysec:每秒同步,这也是默认方式;
        no:不调用fsync,由操作系统决定何时同步,比如快的模式;
        no-appendfsync-on-rewrite:默认值no。当AOF fsync策略设置为always或everysec,后台保存进程会执行大量的I/O操作。某些linux配置下redis可能会阻塞过多的fsync()调用。
        auto-aof-rewrite-percentage:默认值100
        auto-aof-rewrite-min-size:默认值64mb
    # appendfsync always
    appendfsync everysec
    # appendfsync no
    -----以下为高级配置相关的设置----
    hash-max-zipmap-entries:默认值512,当某个map的元素个数达到最大值,但是其中最大元素的长度没有达到设定阀值时,其HASH的编码采用一种特殊的方式(更有效利用内存)。本参数与下面的参数组合使用来设置这两项阀值。设置元素个数;
    hash-max-zipmap-value:默认值64,设置map中元素的值的最大长度;这两个
    list-max-ziplist-entries:默认值512,与hash类似,满足条件的list数组也会采用特殊的方式以节省空间。
    list-max-ziplist-value:默认值64
    set-max-intset-entries:默认值512,当set类型中的数据都是数值类型,并且set中整型元素的数量不超过指定值时,使用特殊的编码方式。
    zset-max-ziplist-entries:默认值128,与hash和list类似。
    zset-max-ziplist-value:默认值64
    activerehashing:默认值yes,用来控制是否自动重建hash。Active rehashing每100微秒使用1微秒cpu时间排序,以重组Redis的hash表。重建是通过一种lazy方式,写入hash表的操作越多,需要执行rehashing的步骤也越多,如果服务器当前空闲,那么rehashing操作会一直执行。如果对实时性要求较高,难以接受redis时不时出现的2微秒的延迟,则可以设置activerehashing为no,否则建议设置为yes,以节省内存空间。

    CentOS下redis自启动脚本

    声明:此脚本来自网络,经过简单修改,已测,可用。

    用这个脚本管理之前,需要先配置下面的内核参数,否则Redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上:

    # vi /etc/sysctl.conf

    vm.overcommit_memory = 1

    然后应用生效:
    # sysctl -p

    然后增加服务并开机自启动:

    # chmod 755 /etc/init.d/redis
    # chkconfig –add redis
    # chkconfig –level 345 redis on
    # chkconfig –list redis

    脚本下载:http://dl.dbank.com/c0yidab10a

    注意:请将脚本中redis的启动文件、配置文件和pid文件存放位置按你配置的位置做相应修改,文件保存的时候注意是unix下可运行的模式,否则在linux下运行的时候会提示错误,/bin/bash^M: bad interpreter: No such file or directory

    前面一篇已经向大家介绍了《redis的图形界面管理工具:phpredisadmin》,URL:http://blog.csdn.net/wy3552128/article/details/8145319

    下面来说一下它的安装,说白了吧,phpredisadmin工具就是一个放在Apache或者nginx下web根目录下的网站。

    平台:VMware上虚拟的centos4.7

    宿主机:windows

    已经安装:mysql、Apache、PHP、redis

    安装phpredisadmin前准备:

    1、一定要安装Apache、PHP环境,redis可以是部署在其他局域网服务器上的,phpredisadmin在配置文件中去指定redis服务器的IP和端口

    2、下载phpredisadmin:https://github.com/ErikDubbelboer/phpRedisAdmin/downloads

    3、下载predis(redis客户端: Predis、phpredis、Rediska、Redisent、iRedis,这里我用的是predis,只要放在phpredisadmin下面即可):https://github.com/nrk/predis/downloads

    安装:

    1、phpredisadmin解压后,放到Apache的网站跟目录下:/usr/local/apache2/htdocs/,并命名为phpredisadmin,然后访问http://192.168.0.118/phpredisadmin/即可,提示找不到“predis/autoload.php”,我们还需要把predis放在phpredisadmin根目录下

    2、解压predis(predis-0.8.tar.gz),过程如下:

    复制代码
    [root@localhost ~]# tar -zxf predis-0.8
    .tar.gz
    [root@localhost
    ~]# cd predis-0.8[root@localhost predis-0.8
    ]# ll
    总用量
    100-rw-rw-r-- 1 root root 319 11月 3 23:02
    autoload.php
    drwxrwxr
    -x 2 root root 4096 11月 3 23:02 bin-rw-rw-r-- 1 root root 22338 11月 3 23:02 CHANGELOG.md-rw-rw-r-- 1 root root 3264 11月 323:02 CHANGELOG.NAMING.md-rw-rw-r-- 1 root root 737 11月 3 23:02 composer.json-rw-rw-r-- 1 root root 2326 11月 3 23:02
    CONTRIBUTING.md
    drwxrwxr
    -x 2 root root 4096 11月 3 23:02 examples-rw-rw-r-- 1 root root 8467 11月 3 23:02
    FAQ.md
    drwxrwxr
    -x 3 root root 4096 11月 3 23:02 lib-rw-rw-r-- 1 root root 1067 11月 3 23:02 LICENSE-rw-rw-r-- 1 root root 881 11月 3 23:02package.ini-rw-rw-r-- 1 root root 1183 11月 3 23:02 phpunit.xml.dist-rw-rw-r-- 1 root root 1272 11月 3 23:02phpunit.xml.travisci-rw-rw-r-- 1 root root 10554 11月 3 23:02
    README.md
    drwxrwxr
    -x 4 root root 4096 11月 3 23:02 tests-rw-rw-r-- 1 root root 10 11月 3 23:02
    VERSION
    [root@localhost predis
    -0.8
    ]# cd ..
    [root@localhost
    ~]# mv predis-0.8/*
    /usr/local/apache2/htdocs/phpredisadmin/predis/
    [root@localhost ~]#
    [root@localhost ~]# cd /usr/local/apache2/htdocs/phpredisadmin/predis
    [root@localhost predis]# ll
    总用量 100
    -rw-rw-r-- 1 root root 319 11月 3 23:02 autoload.php
    drwxrwxr-x 2 root root 4096 11月 3 23:02 bin
    -rw-rw-r-- 1 root root 22338 11月 3 23:02 CHANGELOG.md
    -rw-rw-r-- 1 root root 3264 11月 3 23:02 CHANGELOG.NAMING.md
    -rw-rw-r-- 1 root root 737 11月 3 23:02 composer.json
    -rw-rw-r-- 1 root root 2326 11月 3 23:02 CONTRIBUTING.md
    drwxrwxr-x 2 root root 4096 11月 3 23:02 examples
    -rw-rw-r-- 1 root root 8467 11月 3 23:02 FAQ.md
    drwxrwxr-x 3 root root 4096 11月 3 23:02 lib
    -rw-rw-r-- 1 root root 1067 11月 3 23:02 LICENSE
    -rw-rw-r-- 1 root root 881 11月 3 23:02 package.ini
    -rw-rw-r-- 1 root root 1183 11月 3 23:02 phpunit.xml.dist
    -rw-rw-r-- 1 root root 1272 11月 3 23:02 phpunit.xml.travisci
    -rw-rw-r-- 1 root root 10554 11月 3 23:02 README.md
    drwxrwxr-x 4 root root 4096 11月 3 23:02 tests
    -rw-rw-r-- 1 root root 10 11月 3 23:02 VERSION
    [root@localhost predis]#
     
     

    再次访问:http://192.168.0.118/phpredisadmin/,就可以看到redis的管理界面啦。

    ------------------------------------------------还算满意的分割线---------------------------------------------------------------------

    安装php-redis:

    下载:https://github.com/nicolasff/phpredis/tree/2.1.3

    复制代码
    [root@localhost ~]# tar -zxf owlient-phpredis-2.1.1-1-
    g90ecd17.tar.gz
    [root@localhost
    ~]# cd owlient-phpredis-
    90ecd17
    [root@localhost owlient
    -phpredis-90ecd17]# /usr/local/php/bin/
    phpize
    Configuring
    for
    :
    PHP Api Version:
    20090626Zend Module Api No: 20090626Zend Extension Api No: 220090626[root@localhost owlient-phpredis-90ecd17]# ./configure --with-php-config=/usr/local/php/bin/php-
    config
    [root@localhost owlient
    -phpredis-90ecd17]# make && make install
    复制代码

    接下来编辑/usr/local/php/lib下的php.ini,添加:

    extension_dir="/usr/local/php/lib/php/extensions/no-debug-zts-20090626/" //查看这个路径下是否存在redis.soextension=redis.so

    最后重启Apache

    [root@localhost bin]# ./apachectl restart

    测试页:

    复制代码
    [root@localhost htdocs]# vi redis.php<?
    php
    $redis
    = new
    Redis();
    $redis
    ->connect('127.0.0.1',6379
    );
    $redis
    ->set('test','hello world! hao a you'
    );
    echo $redis
    ->get('test');?>
    复制代码

    访问测试页:http://192.168.12.12/redis.php

    在phpinfo()测试页中查看是否加载了php-redis扩展:

     
     
  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/dest/p/4203727.html
Copyright © 2011-2022 走看看