ItGo.me - 专注IT技术分享

首页 > Redis > redis session 存储 同步

redis session 存储 同步

时间:2016-08-28来源:网友分享 点击:

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

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

[root@mysqlMaster www]# yum install redis php-devel php-redis

如果找不到redis,php-redis包的话,换源。如果不想换源的,请参考:

二,配置redis服务端

[root@mysqlMaster www]# mv /etc/redis.conf /etc/redis.conf_bak //备份原有redis配置文件[root@mysqlMaster www]# cat /etc/redis.conf    //添加以下内容daemonize yespidfile /var/run/redis/redis.pidport 6379timeout 300loglevel verboselogfile /var/log/redis/redis.logdatabases 16save 900 1save 300 10save 60 10000rdbcompression yesdbfilename dump.rdbdir /var/lib/redis/slave-serve-stale-data yesappendonly noappendfsync everysecno-appendfsync-on-rewrite novm-enabled novm-swap-file /tmp/redis.swapvm-max-memory 0vm-page-size 32vm-pages 134217728vm-max-threads 4hash-max-zipmap-entries 512hash-max-zipmap-value 64list-max-ziplist-entries 512list-max-ziplist-value 64set-max-intset-entries 512activerehashing yes

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

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

1,启动服务端

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

2,修改php.ini配置

session.save_handler = redissession.save_path = "tcp://127.0.0.1:6379"

3,查看redis的php扩展

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


redis php扩展


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


session 可以存到redis中


四,session存储到redis中测试

<?phpsession_start();$_SESSION['redis'] = "aaaaaa";echo session_id();echo "<br>";echo $_SESSION['redis'];echo "<br>";$redis = new redis();$redis->connect('192.168.1.108', 6379);echo $redis->get("PHPREDIS_SESSION:ruk5i2vlu2hvtmfr5hig4l55f6");//这个key我是通过telnet到redis查的。?>

页面显示结果


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


redis telnet查看session


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

redis session 存储 同步

redis session 存储 同步  讨论


Redis 的 Python 开发包:aioredis

aioredis 是基于 Asyncio 实现的异步 Redis 的 Python 开发包。 要求: 3.3+ or 3.4+ 示例代码: importasyncioimportaioredisloop=asyncio.get_event_loop()@asyncio.coroutinedefgo():conn=yieldfromaioredis.create_connection(('localhost',63...

VB.NET 操作 Redis 数据

本代码介绍在 VB.NET 环境下如何使用 Redis 来存取数据 标签: 代码片段 (3) 1. [文件] RedisExample01_demo.zip~236KB(47) 2. [文件] RedisExample01_src.zip~736KB(38) 3. [代码] [ASP/Basic]代码 跳至 Imports ServiceStack.Redis...

redis实战之使用redis保存最近浏览的商品数据

注:本文只做教学目的,而在实际的应用场景中,大型的电商网站的访问量较大,将浏览数据存储于redis中并不可行,望读者知悉。 在我们网上购物时,经常能看到那些电商网站通常都有一个...

session可以存放在文件中,可以存放在memcache中,本以为session是不可以存放到redis中了,今天尝试了一下,竟然可以。session存文件是没问题的,存memcache也是没有问题的,这个我测试过,请参考
------分隔线----------------------------