标签:从服务器 soc enc nav 部分 存在 link 支持 ase
redis应用场景
1.全部数据in-memory
2.作为memcache的替代品
3.需要key/varue之外的更多数据类型
4.适应于存储的数据不能被剔除时
redis安装与使用
1.准备2个安装包
redis-3.2.3.tar.gz
redis-3.0.0.tgz php-redis扩展
2.安装redis
tar redis-3.2.3.tar.gz
tar zxvf redis-3.2.3.tar.gz
cd redis-3.2.3
make
mkdir -p /usr/local/redis/conf
mkdir -p /usr/local/redis/run
mkdir -p /usr/local/redis/db
cp redis.conf /usr/local/redis/conf/
cd src
cp redis-benchmark redis-check-aof redis-cli redis-server mkreleasehdr.sh /usr/local/redis/
vi /usr/local/redis/conf/redis.conf
daemonize yes pidfile /usr/local/redis/run/redis.pid dir /usr/local/redis/db
vi /usr/local/redis/start.sh
#!/bin/bash
/usr/local/redis/redis-server /usr/local/redis/conf/redis.conf
vi /usr/local/redis/stop.sh
#!/bin/bash kill `cat /usr/local/redis/run/redis.pid`
chmod a+x /usr/local/redis/start.sh /usr/local/redis/stop.sh
4:启动 redis 服务
/usr/local/redis/start.sh
验证证服务是否成功:
netstat -nlpt | grep 6379
5:客户端连接测试
/usr/local/redis/redis-cli
127.0.0.1:6379> set key1 var1 OK 127.0.0.1:6379> get key1 "var1"
6.php扩展
tar zxvf redis-3.0.0.tgz
cd redis-3.0.0
phpize
可能报错:
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.
解决办法:
wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9/
./configure && make && make install
cd ../
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
tar -zvxf autoconf-2.62.tar.gz
cd autoconf-2.62/
./configure && make && make install
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060922/
把这个extension的路径记住, 然后修改php.ini
extension_dir = "./"
修改为
extension_dir = "/usr/local/php/lib/php/extensions/"
并添加一行
extension="no-debug-non-zts-20060922/redis.so"
7.在thinkphp下使用redis
<?php $redisConfig = [ ‘host‘ => ‘127.0.0.1‘, ‘port‘ => 6379, ‘passwd‘ => ‘123456‘, ‘dbIndex‘ => 0, ‘timeout‘ => 10, ‘link_name‘ => ‘redislink‘ ]; if (extension_loaded(‘Redis‘)) { $redis = new \Redis(); $redis->connect($redisConfig[‘host‘], $redisConfig[‘port‘], $redisConfig[‘timeout‘]); $redis->auth($redisConfig[‘passwd‘]); $redis->client(‘setname‘, $redisConfig[‘link_name‘]); if ((gettype($redis->socket) == ‘resource‘)) { $this->redis = $redis; $this->redis->select($redisConfig[‘dbIndex‘]); } } ?>
Redis Master/Slave 主从集群配置
部分重同步
从 Redis 2.8 开始, 在网络连接短暂性失效之后, 主从服务器可以尝试继续执行原有的复制进程(process), 而不一定要执行完整重同步操作。
从服务器的复制功能的作用: 数据冗余 + 读写分离 + 减轻负载
1.可以单纯地用于数据冗余(data redundancy)
2.也可以通过让多个从服务器处理只读命令请求, 实现读写分离
3.也可以让主服务器免于执行持久化操作(关闭主、开启从的持久化功能), 减轻负载
主服务器只在有至少 N 个从服务器的情况下,才执行写操作
如果至少有 min-slaves-to-write 个从服务器, 并且这些服务器的延迟值都少于 min-slaves-max-lag 秒, 那么主服务器就会执行客户端请求的写操作。(尽管不能保证写操作的持久性, 但起码丢失数据的窗口会被严格限制在指定的秒数中)
以下是这个特性的两个选项和它们所需的参数:
min-slaves-to-write <number of slaves>
min-slaves-max-lag <number of seconds>
Master IP:127.0.0.1 PORT:6379
Slave1 IP:127.0.0.1 PORT:63791
Slave2 IP:127.0.0.1 PORT:63792
1:复制两个 Slave 目录,方便管理
cp -r /usr/local/redis /usr/local/redis-slave1
cp -r /usr/local/redis /usr/local/redis-slave2
2:修改 redis-slave1 的配置文件和服务脚本 (slave2同此)
从服务器支持只读模式, 并且该模式为从服务器的默认模式。
vi /usr/local/redis-slave1/conf/redis.conf
port 63791 pidfile /usr/local/redis-slave1/run/redis.pid dir /usr/local/redis-slave1/db slaveof 127.0.0.1 6379 #masterauth <password> #连接主服务器所需要的密码
vi /usr/local/redis-slave1/start.sh
#!/bin/bash
/usr/local/redis-slave1/redis-server /usr/local/redis-slave1/conf/redis.conf
vi /usr/local/redis-slave1/stop.sh
#!/bin/bash kill `cat /usr/local/redis-slave1/run/redis.pid`
3:启动 M/S 服务
/usr/local/redis/start.sh
/usr/local/redis-slave1/start.sh
/usr/local/redis-slave2/start.sh
netstat -nlpt | grep redis-server #验证服务是否正常: 有3个端口存在证明成功了
0 0.0.0.0:6379 0 0.0.0.0:63791 0 0.0.0.0:63792
4:验证M/S服务是否生效
/usr/local/redis/redis-cli [默认连接端口:6379 的 Master服务]
>set key1 var1
>quit
/usr/local/redis/redis-cli -p 63791 [连接 Slave1 服务]
>get key1 "var1"
/usr/local/redis/redis-cli -p 63792 [连接 Slave2 服务]
>get key1 "var1"
redis-cli -h 127.0.0.1 -p 63791 info //主库上显示info
redis-cli -h 127.0.0.1 -p 63792 monitor //从库上监控
redis负载均衡
给redis服务器做主从同步, 然后利用lvs轮询server1和server2
或者: http://doc.redisfans.com/topic/cluster-tutorial.html
;
标签:从服务器 soc enc nav 部分 存在 link 支持 ase
原文地址:http://www.cnblogs.com/upup2015/p/7782439.html