redis session 存储 同步

前端之家收集整理的这篇文章主要介绍了redis session 存储 同步前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

session可以存放在文件中,可以存放在memcache中,本以为session是不可以存放到redis中了,今天尝试了一下,竟然可以。session存文件是没问题的,存memcache也是没有问题的,这个我测试过,请参考:web集群时利用memcache来同步session但是redis是部分是走内存,部分是走文件的。我在想redis是怎么对待session的呢,费话不多了,看下文。

一,redis服务端,以及PHP扩展PHP-redis的安装

[root@MysqLMaster www]# yum install redis PHP-devel PHP-redis@H_502_15@

如果找不到redis,PHP-redis包的话,换源。如果不想换源的,请参考:linux redis 安装配置,以及redis php扩展

二,配置redis服务端

[root@MysqLMaster www]# mv /etc/redis.conf /etc/redis.conf_bak //备份原有redis配置文件
[root@MysqLMaster www]# cat /etc/redis.conf    //添加以下内容
daemonize yes
pidfile /var/run/redis/redis.pid
port 6379
timeout 300
loglevel verbose
logfile /var/log/redis/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /var/lib/redis/
slave-serve-stale-data yes
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
vm-enabled no
vm-swap-file /tmp/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
activerehashing yes@H_502_15@

参数说明:linux redis 安装配置,以及redis PHP扩展,这篇博客里面有。

三,启动redis服务端,并且查看PHP-redis扩展

1,启动服务端

[root@MysqLMaster ~]# /etc/init.d/redis start@H_502_15@

2,修改PHP.ini配置

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"@H_502_15@

3,查看redis的PHP扩展

查看一下PHPinfo要有以下二样,才能将session存储到redis中,

redis php扩展

redis PHP扩展

有了redis扩展,还要看PHP.ini有没有配置好。

session 可以存到redis中

session 可以存到redis中

四,session存储到redis中测试

PHP
session_start();
$_SESSION['redis'] = "aaaaaa";
echo session_id();
echo "PHPREDIS_SESSION:ruk5i2vlu2hvtmfr5hig4l55f6");//这个key我是通过telnet到redis查的。
?>@H_502_15@

echo session_id();显示出来是ruk5i2vlu2hvtmfr5hig4l55f6,开始的时候,echo $redis->get("ruk5i2vlu2hvtmfr5hig4l55f6");不管怎么样都取不到值,因为memcache这样是可以取到值的,所以我就想redis估计也是这样。telnet到redis看了一下,原来命名key值的方式是不一样的,看下图

redis telnet查看session

redis telnet查看session

到这儿session存储到redis是没有问题了,怎么同步呢。多服务器时,redis是可以配置同步的,当一台机子有session就可以准实时的同步到另一台。关于redis同步,请参考:redis 分布式,主从同步

原文链接:https://www.f2er.com/redis/447324.html

猜你在找的Redis相关文章