zoukankan      html  css  js  c++  java
  • 安装redis和php的redis扩展

    一、安装Redis 

    在服务器上下载好最新的redis解压包后,解压

    #tar -zxvf redis-3.2.0-tar-gz

    #cd redis-3.2.0-tar-gz

    #make (redis-3.2.0-tar-gz是二进制包,所以不需要./configure命令。)

    #cd src

    #make install

    之后我们需要将redis的文件复制到/usr/local/redis目录下

    # mkdir -p /usr/local/redis/bin
    # mkdir -p /usr/local/redis/etc
    # cp -pf redis-benchmark /usr/local/redis/bin
    # cp -pf redis-cli /usr/local/redis/bin
    # cp -pf redis-check-dump /usr/local/redis/bin
    # cp -pf redis-check-aof /usr/local/redis/bin
    # cp -pf redis-server /usr/local/redis/bin
    # cp -pf ../redis.conf /usr/local/redis/etc

    之后在redis的配置文件,将redis推送到后台运行

    vim /usr/local/redis/etc/redis.conf

    找到daemonize设置为yes(该项默认为no),保存

    之后启动redis服务

    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

    输入pstree |grep redis可查看redis主程序是否存在

    二、安装Redis扩展

    下载地址:https://github.com/phpredis/phpredis

    unzip phpredis-develop.zip 

    cd phpredis-develop

    /usr/bin/phpize

    phpredis-develop]# ./configure --with-php-config=/usr/bin/php-config

    make 

    make install

    之后在php配置文件中加入redis扩展

    #vim /etc/php.ini

    extension = "redis.so"

    之后需要进行安全配置,使只有指定的ip地址能够访问redis

    vim /usr/local/redis/etc/redis.conf

    找到默认的配置

    # bind 127.0.0.1

    默认情况下,redis会暴露给所有ip地址,如果你只想让本机连接,则设置成bind 127.0.0.1

    (多个ip用空格隔开)

    以下配置介绍转载于http://my.oschina.net/wfire/blog/301147

    #yes则将redis作为守护进程(后台运行,且随linux启动而启动)
    daemonize no
    
    #当redis作为守护进程运行的时候,它会把 pid 默认写到/var/run/redis.pid 文件里面,也可自己指定位置
    pidfile /var/run/redis.pid
    
    # 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。
    port 6379
    
    # TCP 监听的最大容纳数量
    # 在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题。
    # Linux 内核会一声不响的把这个值缩小成 /proc/sys/net/core/somaxconn 对应的值,
    # 所以你要修改这两个值才能达到你的预期。
    tcp-backlog 511
    
    # 指定 unix socket 的路径。
    unixsocket /tmp/redis.sock
    unixsocketperm 755
    
    # 指定在一个 client 空闲多少秒之后关闭连接(0 就是不管它)
    timeout 0
    
    #如果设置为非零,则在与客户端缺乏通讯的时候使用 SO_KEEPALIVE 发送 tcp acks 给客户端。推荐一个合理的值就是60秒
    tcp-keepalive 0
    
    # 定义日志级别。
    # 可以是下面的这些值:
    # debug (适用于开发或测试阶段)
    # notice (适用于生产环境)
    # warning (仅仅一些重要的消息被记录)
    loglevel notice
    
    # 指定日志文件的位置
    logfile ""
    
    # 要想把日志记录到系统日志,就把它改成 yes,
    # 也可以可选择性的更新其他的syslog 参数以达到你的要求
    syslog-enabled no
    
    # 设置 syslog 的 identity。
    syslog-ident redis
     
    # 设置 syslog 的 facility,必须是 USER 或者是 LOCAL0-LOCAL7 之间的值。
    syslog-facility local0
    
    # 设置数据库的数目。
    # 默认数据库是 DB 0,你可以在每个连接上使用 select <dbid> 命令选择一个不同的数据库,
    # 但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值
    databases 16
    
    #redis持久化设置################################
    # 存 DB 到磁盘:
    #
    #   格式:save <间隔时间(秒)> <写入次数>
    #
    #   根据给定的时间间隔和写入次数将数据保存到磁盘
    #
    #   下面的例子的意思是:
    #   900 秒内如果至少有 1 个 key 的值变化,则保存
    #   300 秒内如果至少有 10 个 key 的值变化,则保存
    #   60 秒内如果至少有 10000 个 key 的值变化,则保存
    #  
    #   注意:你可以注释掉所有的 save 行来停用保存功能。
    #   也可以直接一个空字符串来实现停用:
    #   save ""
    save 900 1
    save 300 10
    save 60 10000
    
    # 默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,
    # 这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,
    # 否则就会没人注意到灾难的发生。
    #
    # 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。
    #
    # 然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。
    stop-writes-on-bgsave-error yes
    
    # 是否在 dump .rdb 数据库的时候使用 LZF 压缩字符串
    # 默认都设为 yes
    # 如果你希望保存子进程节省点 cpu ,你就设置它为 no ,
    # 不过这个数据集可能就会比较大
    rdbcompression yes
    
    # 是否校验rdb文件
    rdbchecksum yes
    
    # 设置 dump 的文件位置
    dbfilename dump.rdb
    
    # 工作目录
    # 例如上面的 dbfilename 只指定了文件名,
    # 但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名。
    dir ./
    
    #主从复制设置#######################################
    
    # 主从复制。使用 slaveof 来让一个 redis 实例成为另一个reids 实例的副本。
    # 注意这个只需要在 slave 上配置。
    #
    # slaveof <masterip> <masterport>
     
    # 如果 master 需要密码认证,就在这里设置
    # masterauth <master-password>
     
    # 当一个 slave 与 master 失去联系,或者复制正在进行的时候,
    # slave 可能会有两种表现:
    #
    # 1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,
    #    或者数据可能是空的在第一次同步的时候
    #
    # 2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,
    #    slave 都将返回一个 "SYNC with master in progress" 的错误,
    #
    slave-serve-stale-data yes
    
    # 你可以配置一个 slave 实体是否接受写入操作。
    # 通过写入操作来存储一些短暂的数据对于一个 slave 实例来说可能是有用的,
    # 因为相对从 master 重新同步数而言,据数据写入到 slave 会更容易被删除。
    # 但是如果客户端因为一个错误的配置写入,也可能会导致一些问题。
    #
    # 从 redis 2.6 版起,默认 slaves 都是只读的。
    # 注意:只读的 slaves 没有被设计成在 internet 上暴露给不受信任的客户端。
    # 它仅仅是一个针对误用实例的一个保护层。
    slave-read-only yes
    
    # Slaves 在一个预定义的时间间隔内发送 ping 命令到 server 。
    # 你可以改变这个时间间隔。默认为 10 秒。
    #
    # repl-ping-slave-period 10
    
    #安全#######################################
    #设置密码
    requirepass 12345678
    
    #限制#######################################
    # 设置连接最大限制,一旦达到最大限制,redis 将关闭所有的新连接
    # 并发送一个‘max number of clients reached’的错误。
    maxclients 10000
    
    # 如果你设置了这个值,当缓存的数据容量达到这个值, redis 将根据你选择的
    # eviction 策略来移除一些 keys。
    # 如果 redis 不能根据策略移除 keys ,或者是策略被设置为 ‘noeviction’,
    # redis 将开始响应错误给命令,如 set,lpush 等等,
    # 并继续响应只读的命令,如 get
    # 最大使用内存
    maxmemory <bytes>
    
    # 最大内存策略,你有 5 个选择。
    # volatile-lru -> 使用 LRU 算法移除包含过期设置的 key 。
    # allkeys-lru -> 根据 LRU 算法移除所有的 key 。
    # noeviction -> 不让任何 key 过期,只是给写入操作返回一个错误
    # volatile-random -> remove a random key with an expire set
    # allkeys-random -> remove a random key, any key
    maxmemory-policy noeviction
  • 相关阅读:
    第三波精品Android源码袭来!免费下载
    推荐!Html5精品效果源码分享
    又来一波!Android精品源码分享
    Android精品资源汇总,10个源码(持续更新)
    Android开发者学习必备:10个优质的源码供大家学习
    专访方立勋:开发者应该保持好奇和热情
    将博客搬至CSDN
    GIT修改commit信息
    使用FormData上传文件
    Spring MVC @PathVariable with dot (.) is getting truncated
  • 原文地址:https://www.cnblogs.com/red-code/p/5543736.html
Copyright © 2011-2022 走看看