首页 > 代码库 > php redis

php redis

一、redis

Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windows版项目是由微软开放技术团队建立和维护一个实验性项目(支持32,64位),所以并不适用生产环境,但可在Windows环境下用于开发测试。

1.下载安装

$ wget http://download.redis.io/releases/redis-2.6.16.tar.gz$ tar xzf redis-2.6.16.tar.gz$ cd redis-2.6.16$ make install

 

2.配置 更改redis的配置需要修改redis.conf文件,以下是它一些主要的配置注释

$ mkdir /etc/redis$ cp redis.conf /etc/redis/redis.conf $ gedit /etc/sysctl.conf$ sysctl -p

注:sysctl.conf文件尾部加上vm.overcommit_memory=1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#是否作为守护进程运行
daemonize no
#Redis 默认监听端口
port 6379
#客户端闲置多少秒后,断开连接
timeout 300
#日志显示级别
loglevel verbose
#指定日志输出的文件名,也可指定到标准输出端口
logfile redis.log
#设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库
databases 32
#Dump持久化策略
#当有一条Keys 数据被改变是,900 秒刷新到disk 一次
#save 900 1
#当有10 条Keys 数据被改变时,300 秒刷新到disk 一次
save 300 100
#当有1w 条keys 数据被改变时,60 秒刷新到disk 一次
save 6000 10000
#当dump .rdb 数据库的时候是否压缩数据对象
rdbcompression yes
#dump 持久化数据保存的文件名
dbfilename dump.rdb
########### Replication #####################
#Redis的主从配置,配置slaveof则实例作为从服务器
#slaveof 192.168.0.105 6379
#主服务器连接密码
# masterauth <master-password>
############## 安全性 ###########
#设置连接密码
 
#requirepass <password>
############### LIMITS ##############
#最大客户端连接数
# maxclients 128
#最大内存使用率
# maxmemory <bytes>
########## APPEND ONLY MODE #########
#是否开启日志功能
appendonly no
# AOF持久化策略
 
#appendfsync always
#appendfsync everysec
#appendfsync no
################ VIRTUAL MEMORY ###########
#是否开启VM 功能
#vm-enabled no
# vm-enabled yes
#vm-swap-file logs/redis.swap
#vm-max-memory 0
#vm-page-size 32
#vm-pages 134217728
#vm-max-threads 4

主从复制

  在从服务器配置文件中配置slaveof ,填写服务器IP及端口即可,如果主服务器设置了连接密码,在masterauth后指定密码就行了

持久化

redis提供了两种持久化文案,Dump持久化和AOF日志文件持久化

Dump持久化是把内存中的数据完整写入到数据文件,由配置策略触发写入,如果在数据更改后又未达到触发条件而发生故障会造成部分数据丢失.

AOF持久化是日志存储的,是增量的形式,记录每一个数据操作动作,数据恢复时就根据这些日志来生成.

3.启动测试

$ /usr/local/bin/redis-server /etc/redis/redis.conf $ /usr/local/bin/redis-cli$ set test xjx$ get test

 4.开机启动

$ gedit /etc/redis/redis.conf

设置daemonize yes

$ gedit /var/run/redis.pid

直接保存,主要是创建该文件

gedit /etc/init.d/redis

编辑脚本,也可以自己下载或者输入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig:   - 80 12
# description:  Redis is a persistent key-value database
# processname: redis-server
# config:      /etc/redis/redis.conf
# pidfile:     /var/run/redis.pid
 
source /etc/init.d/functions
 
BIN="/usr/local/bin"
CONFIG="/etc/redis/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 

添加开机启动

之后重启服务器,$ service redis status 查看是否正确配置

命令行操作

使用CMD命令提示符,打开redis-cli连接redis服务器 ,也可以使用telnet客户端

# redis-cli -h 服务器 –p 端口 –a 密码

redis-cli.exe -h 127.0.0.1 -p 6379

连接成功后,就可对redis数据增删改查了,如字符串操作

05235638-63c9282118344f4fb2e79adf4a825086.png (677×187)

以下是一些服务器管理常用命令:

1
2
3
4
5
6
7
info   #查看服务器信息
select <dbsize> #选择数据库索引  select 1
flushall #清空全部数据
flushdb  #清空当前索引的数据库
slaveof <服务器> <端口>  #设置为从服务器
slaveof no one #设置为主服务器
shutdown  #关闭服务

二、phpredis

1.自行下载解压

https://github.com/nicolasff/phpredis/archive/master.zip

 

2.安装

$ cd /root/phpredis-master$ /usr/local/php/bin/phpize$ ./configure --with-php-config=/usr/local/php/bin/php-config$ make && make install

注:路径根据实际情况修改

 

3.php扩展

$ gedit /usr/local/php/etc/php.ini

加入extension=redis.so,然后重启php-fpm(非nginx)

 

4.测试

$redis = new Redis();$redis->connect(‘127.0.0.1‘,6379);$redis->set(‘test‘,‘hello world!‘);echo $redis->get(‘test‘);

 

三、phpredisadmin

http://down.admin5.com/php/75024.html

下载解压至www目录即可,最好不用官方最新版本。

php redis