广告
返回顶部
首页 > 资讯 > 后端开发 > Python >codeigniter 3.X使用red
  • 483
分享到

codeigniter 3.X使用red

codeigniterred 2023-01-31 06:01:44 483人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

学习Redis正好用codeigniter来练习CI3.X自带redis库并且在两个地方使用了这个功能,前提系统安装PHPredis 这个php扩展1、储存session的驱动支持redisHttp://codeigniter.org.cn

学习Redis正好用codeigniter来练习


CI3.X自带redis库并且在两个地方使用了这个功能,前提系统安装PHPredis 这个php扩展


1、储存session的驱动支持redis

Http://codeigniter.org.cn/user_guide/libraries/sessions.html?highlight=redis

设置application/config/config.php

$config['sess_driver'] = 'redis';
$config['sess_save_path'] = 'tcp://localhost:6379';

使用同session的使用,具体见手册

$this->load->library('session');

这种方法只是使用redis来储存session



2、CI的缓存驱动器(Caching Driver)

http://codeigniter.org.cn/user_guide/libraries/caching.html?highlight=redis#redis

CI3.X支持多种缓存方式,redis只是其中一种,不过CI将redis和其他缓存方式都放到“cache”这个驱动模块中

$this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));

CI缓存使用方法见手册


具体说说redis缓存的使用

修改 application/config/redis.php 设置

$config['Socket_type'] = 'tcp'; //`tcp` or `unix`
$config['socket'] = '/var/run/redis.sock'; // in case of `unix` socket type
$config['host'] = '127.0.0.1';
$config['passWord'] = NULL;
$config['port'] = 6379;
$config['timeout'] = 0;

使用

$this->load->driver('cache');
$this->cache->redis->save('foo', 'bar', 10);


redis缓存在CI中的设置十分简单,BUT,

可能是因为redis只是缓存驱动的一种,CI能实现的功能也十分简单。

源码 system/libraries/Cache/drivers/Cache_redis.php的111行

$this->_redis = new Redis();

CI并没继承phpredis的类,所以cache对redis的操作进行了封装,看封装的几个方法,CI的redis驱动只支持简单的字符串类型



codeigniter-redis第三方驱动

https://GitHub.com/joelcox/codeigniter-redis

看更新时间,还是CI 2.X时候开发的,不过phpredis没有太大升级,CI 3.X用起来应该也没什么影响

安装也很简单

将Redis.php类库放到system/libraries下

application/config/autoload.php 加载类库,添加

$autoload['libraries'] = array('redis');

在 application/config/redis.php

添加配置

$config['redis_default']['host'] = '127.0.0.1';        // IP address or host
$config['redis_default']['port'] = '6379';            // Default Redis port is 6379
$config['redis_default']['password'] = '';            // Can be left empty when the server does not require AUTH

$config['redis_slave']['host'] = '127.0.0.1';
$config['redis_slave']['port'] = '6379';
$config['redis_slave']['password'] = '';

现在就可以用CI类库的方式使用redis了

 测试

    $this->load->driver('redis');
    $array_mset=array(
                    'first_key'=>'first_val',
                    'second_key'=>'second_val',
                    'third_key'=>'third_val'
    );
    $this->redis->mset($array_mset); #用MSET一次储存多个值
    $array_mget=array('first_key','second_key','third_key');
    var_dump($this->redis->mget($array_mget)); 
    #一次返回多个值 //array(3) { [0]=> string(9) "first_val" [1]=> string(10) "second_val" [2]=> string(9) "third_val" }


不过这里有个冲突,加载第三方redis类库后,原生的cache无法使用redis模块,

因为第三方redis类库的config和CI 3.X的redis驱动config的结构不同,加载方式也不同

第三方autoload时

$this->_ci->load->config('redis');

而Cache_redis.php是

$CI->config->load('redis', TRUE, TRUE)

所以造成cache无法使用redis模块。

(测试CI的autoload加载模块先加载,默认模块是调用时候加载)


解决方案,修改cache的redis配置,放到一个redis数组

$config['redis']['socket_type'] = 'tcp'; //`tcp` or `unix`
$config['redis']['socket'] = '/var/run/redis.sock'; 
$config['redis']['host'] = '127.0.0.1';
$config['redis']['password'] = NULL;
$config['redis']['port'] = 6379;
$config['redis']['timeout'] = 0;


其实个人觉得没这个必要,如果使用了第三方redis类库没必要同时使用cache模块。

--结束END--

本文标题: codeigniter 3.X使用red

本文链接: https://www.lsjlt.com/news/189731.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • codeigniter 3.X使用red
    学习redis正好用codeigniter来练习CI3.X自带redis库并且在两个地方使用了这个功能,前提系统安装phpredis 这个PHP扩展1、储存session的驱动支持redishttp://codeigniter.org.cn...
    99+
    2023-01-31
    codeigniter red
  • python笔记之3.x与2.x的使用区
    python目前有两个分支:2.7.3和3.3.0,基本用法大同小异,但在个别细节上还是有出入的,具体看python.org网站。 个人感觉的差异有: 1、py3默认就是unicode,终于在写程序时可以不用再考虑中文...
    99+
    2023-01-31
    笔记 python
  • php CodeIgniter框架怎么使用
    使用 CodeIgniter 框架分为以下几个步骤: 下载和安装 CodeIgniter 框架:你可以从 CodeIgniter...
    99+
    2023-10-22
    php CodeIgniter
  • nagios 3.X 简单部署及应用
    ################################# 欢迎与我交流                 ## 作者:守住每一天             ## QQ: 48431359                ## BLOG:...
    99+
    2023-01-31
    简单 nagios
  • Windows下使Python2.x版本的解释器与3.x共存的方法
    Python2 和 Python3 是不兼容的,如果碰到无法升级到 Python2 代码,或者同事中有坚守 Python2 阵营的情况,就要考虑 Python2 和 Python3 在系统中共存的情况。 M...
    99+
    2022-06-04
    版本 方法 Windows
  • PHP中的CodeIgniter框架如何使用
    要使用CodeIgniter框架,您需要按照以下步骤进行操作:1. 下载CodeIgniter框架:您可以从CodeIgniter官...
    99+
    2023-08-25
    PHP CodeIgniter
  • 如何在PHP中使用CodeIgniter函数
    CodeIgniter是一个轻量级的PHP框架,它提供了许多强大的功能和工具,以便于开发高效、可扩展和易于维护的Web应用程序。本文将重点介绍如何在PHP中使用CodeIgniter函数。一、安装CodeIgniter在开始使用CodeIg...
    99+
    2023-05-18
    PHP编程 CodeIgniter框架 函数使用
  • python 3.x 循环读取文件用户登
    1 import os # 导入python自带库的模块 2 import sys ...
    99+
    2023-01-31
    文件 用户 python
  • 怎么把应用从Eclipse 3.x 迁移到IntelliJ IDEA
    本篇内容主要讲解“怎么把应用从Eclipse 3.x 迁移到IntelliJ IDEA”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么把应用从Eclipse 3.x 迁移到IntelliJ I...
    99+
    2023-06-17
  • 使用 Node-RED对 MQTT 数据流处理
    目录Node-RED 安装运行在 Node-RED 中使用 MQTT连接 MQTT 服务器对 MQTT 数据进行处理发送经过处理后的 MQTT 数据功能测试总结Node-RED 是一...
    99+
    2022-11-13
  • python使用@property @x
    @property可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,但是有时候setter/deleter也是需要的。 1》只...
    99+
    2023-01-31
    python property
  • 怎么使用VueRouter4.x
    这篇文章主要介绍了怎么使用VueRouter4.x的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用VueRouter4.x文章都会有所收获,下面我们一起来看看吧。URL.hash与HistoryVue R...
    99+
    2023-07-02
  • python中的[1:]、[::-1]、X[:,m:n]和X[1,:]的使用
    目录Python中的[1:]Python中的[::-1]Python中的X[:,m:n]和X[1,:]Python中的[1:] 意思是去掉列表中第一个元素(下标为0),去后面的元素进...
    99+
    2022-11-11
  • Mac OS X 使用python ur
    今天是我第一次使用python的urllib.request.openurl 功能获取网页信息,代码如下 # 获取网络文件from urllib.request import urlopenwith urlopen(url='https:...
    99+
    2023-01-30
    OS Mac ur
  • FusionChart使用3
    12、Zero plan相关属性 zeroPlaneColor 设置零线(面)的颜色   zeroPlaneThickness 设置零线(面)的粗细   zeroPlaneAlpha 设置零线(...
    99+
    2023-01-31
    FusionChart
  • 使用 iptables 3
    << Back to man.ChinaUnix.net 红帽企业 Linux 4: 安全指南 后退 第 7章 . 防火墙 前进 使用 iptables 的第一步是启动 iptables 服务。这可以使用以下...
    99+
    2023-01-31
    iptables
  • vue2.x,vue3.x使用provide/inject注入的区别说明
    目录vue2.x,vue3.x使用provide/inject注入区别provide/inject介绍vue2.x用法vue3.x用法vue的依赖注入问题总结vue2.x,vue3....
    99+
    2023-05-17
    vue3使用provide注入 vue3使用inject注入 vue2使用provide注入 vue2使用inject注入
  • python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
    代码中经常会有变量是否为None的判断,有三种主要的写法: 第一种是`if x is None`; 第二种是 `if not x:`; 第三种是`if not x is None`(这句这样理解更清晰`if...
    99+
    2022-06-04
    代码 python
  • Angular X中如何使用ngrx
    这篇文章主要介绍Angular X中如何使用ngrx,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.首先创建一个可路由访问的模块 这里命名为:DemopetModule。包括文件:...
    99+
    2022-10-19
  • 使用python创建cocos2d-x项
    已准备条件: 已安装vs2012,已下载cocos2d-x sdk 2.2.3包。 旧版本使用包里面的模板创建项目,现在新的包,使用python  来创建  1.下载安装  python  https://www.python.org/ ...
    99+
    2023-01-31
    python cocos2d
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作