• Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案


    以前有想过用 Memcache 实现M/S架构的负载均衡方案,直到听说了 Redis 后才发现它做得更好。发了几天时间研究了一下 Redis ,感觉真的很不错,特整理一下!

    以下操作都是在 SUSE Linux 11 下安装了好了PHP为例子,如果安装过程中有提示缺少的包可以使用zypper search rpm-name 进行查询,然后用 zypper install rpm-name 安装

    一:memcache 和 Redis 对比总结

    [memecache 特点]
    1:速度最快(没有自测,但网上有详细的测试用例)
    2:支持水平扩展,可以任意添加节点

    [redis 特点]
    1:速度没有memcache快
    2:支持M/S的主从备份
    3:可以支持多数据库
    4:操作指令很丰富
    4:支持异步数据持久化(以文件保存)

    总结:
    1:如果是简单的数据缓存建议使用MEMCACHE。
    2:如果要对单一操作的数据量非常的大则使用MEMCACHE
    3: 如果想做性能很好的缓存集群可以用Redis(M/S读写分离,如weibo中的排行榜等)
    4: 如果在高并发下又想保存数据则可以用Redis (如更新热门文章浏览次数,memcachedb也不错)

    二:Redis 的详细安装,

    将 redis 安装到 /usr/local/webserver/redis

    1:从 http://redis.io/download 上下载安装包

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    wget http://redis.googlecode.com/files/redis-2.2.15.tar.gz
    tar zxvf redis-2.2.15.tar.gz
    cd redis-2.2.15
    make
      
    mkdir -p /usr/local/webserver/redis/conf
    mkdir -p /usr/local/webserver/redis/run
    mkdir -p /usr/local/webserver/redis/db
    cp redis.conf /usr/local/webserver/redis/conf/
    cd src

    # 将 src 目录下所有可执行文件复制到安装目录

    1
    cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /usr/local/webserver/redis/

    2:修改配置文件中的如下选项

    1
    2
    3
    4
    5
    ------- vi /usr/local/webserver/redis/conf/redis.conf --------
    daemonize yes
    pidfile /usr/local/webserver/redis/run/redis.pid
    dir /usr/local/webserver/redis/db
    --------------------------------------------------------------

    3:创建服务脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ------- vi /usr/local/webserver/redis/start.sh ---------
    #!/bin/bash
    /usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf
    --------------------------------------------------------
    ------- vi /usr/local/webserver/redis/stop.sh ---------
    #!/bin/bash
    kill `cat /usr/local/webserver/redis/run/redis.pid`
    --------------------------------------------------------
      
    chmod a+x /usr/local/webserver/redis/start.sh /usr/local/webserver/redis/stop.sh

    4:启动 redis 服务
    /usr/local/webserver/redis/start.sh
    验证证服务是否成功:
    netstat -nlpt | grep 6379

    5:启动客户端验证

    1
    2
    3
    /usr/local/webserver/redis/redis-cli
    >set key1 val1
    >get key1

    三:Redis Master/Slave 主从集群配置

    这里我们以本机配置 1台Master +1台Slave 为例子,其中:

    从服务器redis文件储存在/etc/redis.conf

    从服务器,配置一样,只不过 修改/etc/redis.conf 中 

    从服务器  slaveof 172.16.10.23(redis master IP) 6379(redis master 端口)

    然后开启从服务器的redis服务。

    目前环境是本地内网虚拟出来,为了达到主从效果,修改了从服务器的redis端口为12002(redis默认端口6379),正式环境上应设置正确IP及端口

    示例:

     
    简单测试通过,主服务器写入,从服务器读出
    由于配置中有一条 从服务器 是只读的,所以从服务器 没法设置数据,只可以读取数据。
  • 相关阅读:
    JS——几种数组遍历方式总结
    JS——获取浏览器地址栏中的参数
    JQuery——JQuery CSS 选择器
    Maven 配置 本地骨架创建工程
    在SpringBoot中的SpringSecurity的配置类中,http.permitAll()与web.ignoring()的区别
    spring-task定时任务动态配置修改执行时间
    常用加密工具类
    thinkphp3.2 验证码的生成和校验,以及遇到的一些问题
    js 倒计时Demo
    PHP递归函数详解
  • 原文地址:https://www.cnblogs.com/CHEUNGKAMING/p/4366180.html
Copyright © 2020-2023  润新知