#!/bin/bash
####redis版本为4.2.0,需要php5.6以上才支持,可先将安装包上传到/tools目录。
yum -y install wget
yum -y install unzip
mkdir /tools
mkdir -p /app/redis-5.0.3/
cd /tools
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz
cd /tools/redis-5.0.3
make
make PREFIX=/app/redis-5.0.3/ install
ln -s /app/redis-5.0.3/ /app/redis
echo 'PATH=/app/redis/bin/:$PATH' >>/etc/profile ##有$符号,最好手工操作写入
sleep 3
. /etc/profile
mkdir /app/redis/conf
cp /tools/redis-5.0.3/redis.conf /app/redis/conf/
#在/app/redis-5.0.3/目录下,运行./utils/install_server.sh配置向导来配置redis,并且可以将redis服务加到开机自启动中。【重要】
##最大限度使用内存
sysctl vm.overcommit_memory=1
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sed -i "s/# requirepass foobared/requirepass w3e123/g" /app/redis/conf/redis.conf
sed -i "s@bind 127.0.0.1@bind 0.0.0.0@g" /app/redis/conf/redis.conf
redis-cli shutdown save
redis-server /app/redis/conf/redis.conf &
##为php安装redis客户端扩展(php部分视php安装路径而定,安装后php才能调用redis)
##安装后查看php输出信息,检查是否安装成功(以下需要php5.6以上才支持,确定php路径后可启用##部分)。
cd /tools
wget https://github.com/nicolasff/phpredis/archive/master.zip
##wget https://github.com/nicolasff/phpredis/archive/master.zip --no-check-certificate
unzip master.zip
##cd /tools/phpredis-master/
##/usr/local/php/bin/phpize
##./configure -with-php-config=/usr/local/php56/bin/php-config
##make
##make install
##echo "extension=redis.so" >>/usr/local/php56/etc/php.ini
##/etc/init.d/php-fpm stop
##/etc/init.d/php-fpm start
#######python扩展安装(python要先升级到2.7以上)##########
cd /tools
wget https://files.pythonhosted.org/packages/38/75/06ce149efb17817c9ad2428c571372cf2c31b28cee8a4199994ba8fab954/redis-3.2.0.tar.gz
tar zxvf redis-3.2.0.tar.gz
cd /tools/redis-3.2.0
python setup.py install
##python ##测试部分
##import redis
##r = redis.Redis(host='172.16.210.122',port=6379,password='w3e123',db=0)
##r.set('id008','00008')
##r.get('id008')
##r.dbsize()
##r.keys()
##############其它操作####################
##关闭:redis-cli shutdown save
## help @list
##进入redis: redis-cli -a w3e123
##set id01 001
##getset id01 001
##mset id008 ricky age 33 sex male work it
## mget id008 age sex work
##append id01 kkkk
##get id01
##del id01
##get id01
##exists id01
##redis默认有16个库
##keys *
##select 1
##echo "set id004 0004"|nc 127.0.0.1 6379
##redis-cli -a w3e123
###auth w3e123
##echo "get id004"|nc 127.0.0.1 6379
##bgsave 保存。
#####配置文档redis.conf##################
## 218 save 900 1 #这些会阻塞客户端的请求
## 219 save 300 10
## 220 save 60 10000
##
########多实例##################
##cp redis.conf 到一个自己定义好的目录,如/app/redis/conf/6381/redis.conf,
###并修改配置文档里的port、pidfile(pidfile /app/redis/data/6381/redis_6381.pid)和保存数据的dir(dir /app/redis/data/6380/),
##以命令redis-server /app/redis/conf/6381/redis.conf & 启动即可。
#######主从同步###############
##以下配置后即是变为从库:
##cat >> /app/redis/conf/redis.conf << EOF
##slaveof 172.16.210.122 6379
##masterauth w3e123
##EOF
##从库进入客户端(redis-cli -a w3e123)后用monitor命令可以知道与主库的同步情况
##egrep "^slave|^master" /app/redis/conf/redis.conf ,查看配置。
##repl-backlog-size 1mb 不能设置过小,不然当从库断开又重新连上时,可能会丢失数据
##slave-priority 100 设置从库的优先级,当主库宕机时,优先级高的从库将成为主库
##客户端下查看配置设备:info (全部) ; info cpu (查cpu)
##Redis没有用户的概念,但可以设密码。
##rename-command set "" ##禁用命令set