http://www.cnblogs.com/blueel/archive/2013/01/29/2881025.html
redis的优点:支持主从备份,操作指令丰富,支持异步的数据持久化
将 redis 安装到 /apps/svr/redis/
1.下载
wget http://download.redis.io/releases/redis-2.8.9.tar.gz
如果下载不了 直接打开官网下载: http://www.redis.io/download
tar zxvf redis-2.2.15.tar.gz
cd redis-2.2.15
make && make install
mkdir -p /apps/svr/redis/conf
mkdir -p /apps/svr/redis/run
mkdir -p /apps/svr/redis/db
cp redis.conf /apps/svr/redis/conf/
cd src
2.将 src 目录下所有可执行文件复制到安装目录
cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /apps/svr/redis/
3.修改配置文件
------- vi /apps/svr/redis/conf/redis.conf --------
daemonize yes --yes启用守护进程
pidfile /apps/svr/redis/run/redis.pid --Redis以守护进程方式运行时把pid写入文件
dir /apps/svr/redis/db --数据存放的目录
--------------------------------------------------------------
4.创建启动和停止服务脚本
------- vi /apps/svr/redis/start.sh ---------
#!/bin/bash
/apps/svr/redis/redis-server /apps/svr/redis/conf/redis.conf
------- vi /apps/svr/redis/stop.sh ---------
#!/bin/bash
kill `cat /apps/svr/redis/run/redis.pid`
chmod a+x/apps/svr/redis/start.sh /apps/svr/redis/stop.sh
5.启动 redis 服务
/apps/svr/redis/start.sh
验证证服务是否成功:
netstat -nlpt | grep 6379 #端口注意防火墙哈
6.启动客户端验证
/apps/svr/redis/redis-cli
>set key1 val1
>get key1
二. M/S主从集群配置
1台Master和一台Slave
Master IP:127.0.0.1 PORT:6379
Slave1 IP:127.0.0.1 PORT:63791
2.复制slave目录,方便管理
cp -r /apps/svr/redis /apps/svr/redis-slave1
3.修改slave的配置文件和服务脚本
-- vi /apps/svr/redis-slave1/conf/redis.conf --
port 63791
pidfile /apps/svr/redis-slave1/run/redis.pid
slaveof 127.0.0.1 6379
----------------------------------------------------------
-- vi /apps/svr/redis-slave1/start.sh --
#!/bin/bash
/apps/svr/redis-slave1/redis-server /apps/svr/redis-slave1/conf/redis.conf
---------------------------------------------------
------- vi /apps/svr/redis-slave1/stop.sh ---------
#!/bin/bash
kill `cat /apps/svr/redis-slave1/run/redis.pid`
--------------------------------------------------------
4.启动M/S服务
/apps/svr/redis/start.sh
/apps/svr/redis-slave1/start.sh
验证服务是否正常
netstat -nlpt | grep redis-server
5.验证redis是否有效
/apps/svr/redis/redis-cli [默认连接端口:6379 的 Master服务]
>set key1 val1
>quit
/apps/svr/redis/redis-cli -p 63791 [连接 Slave1 服务]
>get key1
“val1″ (数据成功同步了)
多个slave同理配置
php 扩展
http://pecl.php.net/package/redis
wget http://pecl.php.net/get/redis-3.1.2.tgz
tar -zxvf redis-3.1.2.tgz
cd redis-3.1.2
/apps/svr/php/bin/phpize
./configure --with-php-config=/apps/svr/php/bin/php-config
make && make install
vim /apps/svr/php/etc/php.ini
找到extension_dir的位置
在下边添加如下内容:extension=redis.so
redis密码设置、访问权限控制等安全设置
1.比较安全的办法是采用绑定IP的方式来进行控制。
bind 127.0.0.1
2.设置密码,以提供远程登陆
redis.conf
找到
requirepass
写上
requirepass yourpassword
登陆带密码方式
/apps/svr/redis/redis-cli -a redis
自动开机脚本
1.安装tcl支持
yum install tcl
2 vim /etc/init.d/redis
###########################
# chkconfig: 2345 90 10
# description: redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/apps/svr/redis/redis-server
REDIS_CLI=/apps/svr/redis/redis-cli
PIDFILE=/apps/svr/redis/run/redis.pid
CONF="/apps/svr/redis/conf/redis.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x ${PIDFILE} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
##############################
修改权限,可以运行
chmod +x /etc/init.d/redis
sudo chkconfig redis on
启动服务:
service redis start
停止服务:
service redis stop
配置防火墙打开对应的端口:
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
重启防火墙
service iptables restart
Redis支持的种数据类型包括string、list 、set 、sorted set 和hash。
Redis相关的命令可以查看:http://redis.io/commands 这是官方的命令使用手册,
也有中文翻译的:http://redis.readthedocs.org/en/2.4/index.html