Redis安装 和 PHP-redis扩展安装

时间:2021-02-08 17:28:21

Redis安装

1, 下载: 

TCL 8.5:

http://www.tcl.tk/

REDIS:

http://redis.io


2, 安装

首先安装tcl8.5:

tar -zxvf tcl8.6.1-src.tar.gz
cd tcl8.6.1/unix
./configure
make && make install

再安装redis:

tar -zxvf redis-2.6.16.tar.gz
cd redis-2.6.16
make
make test
make install


3,简单配置:

在运行redis前,我们要配置一下。redis的配置文件在你的安装目录里。名为:redis.conf。
简单说几点redis.conf:
redis默认不是用守护进程的,如果需要更改,把daemonize no改成daemonize yes。(测试的时候可以不改,看看打印信息。)
如果对redis默认6379端口不爽的,可以更改port 6379
如果想把数据文件放到一个指定文件夹,更改dir /opt/data/
默认是dir ./ 也就是默认放到安装目录下。
dir 是数据文件路径。默认在安装目录下。
*下面的配置二选一,详见本文注释部分2。
###### SNAPSHOTTING ######内存快照方式:
默认的内存快照策略是,
在900秒(15分钟)内,至少有1次数据变更;
或者300秒内,有至少10次数据变更;
或者60秒内,有至少1000次数据变更;时间+数据变更次数,共同影响内存快照的出现。
###### APPEND ONLY MODE ###### AOF方式
appendfsync everysec 每秒同步。这里可以注释掉,打开下面的选项appendfsync no
其余的配置,conf里面的注释写的挺清楚,我就不多废话了。大家看着自己配就行了。

下面是redis.conf的主要配置参数的意义:
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379

配置详情中文参考: https://github.com/silenceper/my/blob/master/config/redis2.4.chinese

4, 启动redis

在安装目录下# cd src

#./redis-server ./../redis.conf
附注:
2.0.4以前的老版本,运行很简单,在安装目录下:
#./redis-server


也可以把相关命令拷贝到 /usr/bin下来运行.

# cd redis-stable
# cp redis.conf /etc/redis.conf

# redis-server /etc/redis.conf

5, 关闭redis 

# redis-cli shutdown //关闭所有
关闭某个端口上的redis
# redis-cli -p 6397 shutdown //关闭6397端口的redis
说明:关闭以后缓存数据会自动dump到硬盘上,硬盘地址见redis.conf中的dbfilename dump.rdb


6.测试

# redis-cli  
redis> set name songbin
OK
redis> get name
"songbin"

7, redis开机自动启动

用这个脚本管理之前,需要先配置下面的内核参数,否则Redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上:
# vi /etc/sysctl.conf
vm.overcommit_memory = 1
然后应用生效:
# sysctl –p
建立redis启动脚本:
# vim /etc/init.d/redis

# vim /etc/init.d/redis

#!/bin/bash
#
# Init file for redis
#
# chkconfig: - 80 12
# description: redis daemon
#
# processname: redis
# config: /etc/redis.conf
# pidfile: /var/run/redis.pid
source /etc/init.d/functions
#BIN="/usr/local/bin"
BIN="/usr/local/bin"
CONFIG="/etc/redis.conf"
PIDFILE="/var/run/redis.pid"
### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
RETVAL=0
prog="redis-server"
desc="Redis Server"
start() {
if [ -e $PIDFILE ];then
echo "$desc already running...."
exit 1
fi
echo -n $"Starting $desc: "
daemon $BIN/$prog $CONFIG
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stop $desc: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL


然后增加服务并开机自启动:
# chmod 755 /etc/init.d/redis 
# chkconfig --add redis
# chkconfig --level 345 redis on
# chkconfig --list redis

注释:
▲redis的默认端口号是6379,(据redis的作者antirez的博文说,6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。而MERZ长期以来被antirez及其朋友当作愚蠢的代名词。)
 
▲Redis有两种存储方式,默认是snapshot方式,实现方法是定时将内存的快照(snapshot)持久化到硬盘,这种方法缺点是持久化之后如果出现crash则会丢失一段数据。因此在完美主义者的推动下作者增加了aof方式。aof即append only mode,在写入内存数据的同时将操作命令保存到日志文件。


PHP-redis扩展安装

1, 下载:

http://pecl.php.net

2, 安装

tar -zxvf redis-2.2.4.tgz
cd redis-2.2.4
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/
/php-config
make && make install
3,修改php.ini

extension=redis.so

4. 重启php 

kill `cat /var/run/php-fpm.pid ` && /usr/local/php/sbin/php-fpm 


使用phpRedisAdmin 管理redis

git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
cd phpRedisAdmin
git clone https://github.com/nrk/predis.git vendor
移至一个可以访问的目录就可以管理了!(如果出错看看是否关闭了selinux )


常用命令

redis的常用命令主要分为两个方面、一个是键值相关命令、一个是服务器相关命令

1、键值相关命令

      keys * 取出当前所有的key

      exists name 查看n是否有name这个key

      del name 删除key name

      expire confirm 100 设置confirm这个key100秒过期

      ttl confirm 获取confirm 这个key的有效时长

      select 0 选择到0数据库 redis默认的数据库是0~15一共16个数据库

      move confirm 1 将当前数据库中的key移动到其他的数据库中,这里就是把confire这个key从当前数据库中移动到1中

      persist confirm 移除confirm这个key的过期时间

      randomkey 随机返回数据库里面的一个key

      rename key2 key3 重命名key2 为key3

      type key2 返回key的数据类型

2、服务器相关命令

      ping PONG返回响应是否连接成功

      echo 在命令行打印一些内容

      select 0~15 编号的数据库

      quit  /exit 退出客户端

      dbsize 返回当前数据库中所有key的数量

      info 返回redis的相关信息

      config get dir/* 实时传储收到的请求

      flushdb 删除当前选择数据库中的所有key

      flushall 删除所有数据库中的数据库