thinkphp3.2操作redis中使用redis

(C)&&[得博客]&&
请在得博客以浏览报纸的方式浏览本站文章,获取更爽快的阅读体验。
你的位置:&&&&&&正文
ThinkPHP自定义REDIS的SESSION驱动的配置
在网站开发中,session的存储可以根据我们的实际需求来选择不同的存储介质。最近在学习和研究REDIS,因为REDIS的数据都是缓存在内存中的,所以用它作为存储介质,对于读取数据的速度是很快的,同Memcache的读取速度有得一比;再者,REDIS是高性能的key-value数据库,这一方面相对Memcache来说是有过之而无不及的。ThinkPHP的默认采用的SESSION驱动是数据库存储,所以选择什么存储介质得根据实际情况而定。下面就以REDIS为例,写一个REDIS的SESSION驱动:配置文件Config.php需要写入:&?php
return array(
//SESSION的存储介质
'SESSION_TYPE' =& 'Redis',
//SESSION的前缀
'SESSION_PREFIX' =& 'Sess',
//REDIS的服务器地址
'REDIS_HOST' =& '127.0.0.1',
//REDIS的端口
'REDIS_PORT' =& 6379,
REDIS的SESSION驱动类如下:&?php
Class SessionRedis {
//REDIS的链接对象
//REDIS的有效时间
Public function execute () {
session_set_save_handler(
array(&$this,'open'),
array(&$this,'close'),
array(&$this,'read'),
array(&$this,'write'),
array(&$this,'destroy'),
array($this,'gc')
//打开REIS
Public function open ($path,$name) {
$this-&expire = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') : ini_get('session.gc_maxlifetime');
$this-&redis = new Redis();
return $this-&redis-&connect(C('REDIS_HOST'),C('REDIS_PORT'));
//关闭REDIS
Public function close () {
return $this-&redis-&close();
//读取数据
Public function read ($sessId) {
$sessId = C('SESSION_PREFIX') . $sessId;
$data = $this-&redis-&get($sessId);
return $data ? $data : '';
//写入数据
Public function write ($sessId,$data) {
$sessId = C('SESSION_PREFIX') . $sessId;
return $this-&redis-&set($sessId, $data, $this-&expire);
//销毁REDIS
Public function destroy ($sessId) {
$sessId = C('SESSION_PREFIX') . $sessId;
return $this-&redis-&delete($sessId);
Public function gc ($maxLifetime) {
该日志由潘神于 00:54发表在分类下,
转载请注明:
Site Collect
Back to top中国领先的IT技术网站
51CTO旗下网站
如何用Redis缓存改善数据库查询性能?
调整一个关系型数据库以实现高性能查询是一个困难的工作。如果优化数据模型和调整查询方式都不起作用,那么管理员可以使用一个诸如Redis这样的缓存技术,这是一个提供内存内和持久数据存储的关键值数据存储方法。
作者:佚名来源:TechTarget中国| 14:41
调整一个关系型数据库以实现高性能查询是一个困难的工作。如果优化数据模型和调整查询方式都不起作用,那么管理员可以使用一个诸如Redis这样的缓存技术,这是一个提供内存内和持久数据存储的关键值数据存储方法。
因为Redis具有在数据存储中快速读写数据的能力,所以它比关系型数据库更具有性能优势。但是,关键值数据存储是简单的;它们没有一个类似于SQL的查询语言或者结构化的数据模型。相反,它们有一个把键值作为与数值相关的标识符来使用的简单字典或哈希模式。管理员使用这些键来进行数值的存储和检索。
键值存储是简单快速的,它可用于实现丰富数据模型和关系型数据库查询功能的良好匹配。但是,有时候还是使用键值与关系型数据库的组合为好。此外,还有很多商业支持的键值数据库,包括Redis、Riak和Areospike等。
为了运行一个优化热门查询性能的Redis缓存,首先应确定你希望缓存的查询结果。其中,应重点关注最常用的和最耗时的查询,然后确定应缓冲查询中的数据。为简便起见,缓存查询返回的所有列值。
为键值定义一个命名约定;可以使用行主键和列名的组合来构造密钥。例如,其主键ID为 198278的 产品描述可以&198278:descry&的键值进行存储。确保你的命名规则是简单和规则驱动的,以便于使用最少的代码来实现键的程序化创建。
接下来,确定是运行Redis缓存作为自助管理服务还是运行亚马逊的ElastiCache。运行用户自己的Redis实例将赋予管理人员对缓存的完全控制权。而这一控制权意味着灵活性,例如当有超出容量的情况出现时,管理人员有使用现有保留实例的权力。
此外,当用户想要把应用程序从一家云计算供应商迁移至另一家时,他们会发现完整的管理控制权限是非常有用的。
如果用户选择运行一个自助管理的Redis实例,可下载服务器。Redis的客户端支持30种以上编程语言&&从Java和Python到Prolog和Smalltalk。
已经使用AWS环境的企业可能会想要使用ElastiCache。除了诸如托管打补丁这样的优点之外,亚马逊ElastiCache支持一系列高速缓存优化的节点类型,具体包括从中型到2X的m3节点、从大型到8X的r3节点以及从微型到中型的t2节点。ElastiCache还支持一些上一代的节点类型,例如选择m1、m2、t1和c1节点。
ElastiCache还支持多个可用区。如果有一个节点发生故障,一个读操作复制节点将取代故障节点。任何需要确保应用程序运行的DNS变更都是自动完成的,同时会创建一个新的读操作副本。ElastiCache允许基于单位时间使用率的按需定价模式,以及一年期或三年期预付费的节点使用条款。完整定价清单可以在这里找到。
如果使用Redis缓存和亚马逊ElastiCache,那么就可以从AWS管理控制台启动一个集群。除了设置Redis服务外,还需要修改应用程序代码以便于能够使用缓存。一个常用的模式就是,检查缓存中是否存在有一个键值,如果没有就执行一个SQL查询以检索数据,然后将其存储在缓存中。当缓冲存满时,可以配置Redis删除旧数据,这样就不需要用户使用专门的代码来处理缓存存满的情况了。
原文链接:
&【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点头条热点头条头条
24H热文一周话题本月最赞
讲师:22人学习过
讲师:7人学习过
讲师:12人学习过
精选博文论坛热帖下载排行
本书第1版曾被KDnuggets的读者评选为最受欢迎的数据挖掘专著,是一本可读性极佳的教材。它从数据库角度全面系统地介绍了数据挖掘的基本概念...
订阅51CTO邮刊&&&&thinkphp_redis
thinkphp_redis
很好的thinkphp直接操作redis的类库。基本的方法都有了,大家可以自由扩展
若举报审核通过,可奖励20下载分
被举报人:
wangziye0428
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行

我要回帖

更多关于 thinkphp redis类 的文章

 

随机推荐