基于PhalApi的Redis拓展
#基于PhalApi的Redis拓展
##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架.
编写本次拓展出于的目的是为了解决并不是非常熟悉redis的童鞋能够方便的使用redis进行实际的运用 ,对原生的phpredis进行的封装优化良好的注释和例子希望能提供更好的帮助!
注:本拓展并没有开发完成,也没进行严格的测试,此版本为还处于开发阶段的鉴赏版.
附上:
开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release
##安装配置redis以及phpredis##
基于centos6.5
//下redis解压安装
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar zxvf redis-2.8.17.tar.gz
cd redis-2.8.17
make
make test
make install
//生成6379端口以及配置文件
cd utils
./install_server.sh
Please select the redis port for this instance: [6379]
Please select the redis config file name [/etc/redis/6379.conf]
Please select the redis log file name [/var/log/redis_6379.log]
Please select the data directory for this instance [/var/lib/redis/6379]
Please select the redis executable path [/usr/local/bin/redis-server]
//对配置文件进行配置
vi /etc/redis/6379.conf
databases 100 #可以使用的库的数量修改16为100
masterauth xxxxxxxxxxxxx #连接 master 的认证密码
requirepass woyouwaimai76 #连接此redis的连接密码
:wq
//修改关闭redis需要密码
vi /etc/rc.d/init.d/redis_6379
$CLIEXEC -p $REDISPORT -a woyouwaimai76 shutdown #stop redis需要密码
//重启redis
service redis_6379 restart
//添加到系统启动项
chkconfig redis_6379 on
//下载phpredis解压安装
wget https://github.com/nicolasff/phpredis/archive/master.zip
unzip master.zip -d phpredis
cd phpredis/phpredis-master
phpize
./configure
make && make install
//在php.ini中注册phpredis
extension = redis.so
//测试
<?php
$auth = 'xxxxxxxxx';
$source = '127.0.0.1';
$host = '6379';
$redis = new Redis();
echo $redis->connect($host) ? "$host connect" : "$host fail";
if($auth){
echo $redis->auth($auth) ? " auth success" : " auth fail";
}
##注册配置文件在Config.app文件下面## return array( //Redis配置项 'redis' => array( //Redis缓存配置项 'servers' => array( 'host' => '127.0.0.1', //Redis服务器地址 'port' => '6379', //Redis端口号 'prefix' => 'developers_', //Redis-key前缀 'auth' => 'woyouwaimai76', //Redis链接密码 ), // Redis分库对应关系 'DB' => array( 'developers' => 1, 'user' => 2, 'code' => 3, ), //使用阻塞式读取队列时的等待时间单位/秒 'blocking' => 5, ),
);
##在init入口文件注册redis拓展##
//redis链接
DI()->redis = new Redis_Lite(DI()->config->get('app.redis.servers'));
##开始使用##
//存入永久的键值队
DI()->redis->set_forever(键名,值,库名);
//获取永久的键值队
DI()->redis->get_forever(键名, 库名);
//存入一个有时效性的键值队,默认600秒
DI()->redis->set_Time(键名,值, 库名,有效时间);
//获取一个有时效性的键值队
DI()->redis->get_Time(键名, 库名);
//写入队列左边
DI()->redis->set_Lpush(队列键名,值, 库名);
//读取队列右边
DI()->redis->get_lpop(队列键名, 库名);
//读取队列右边 如果没有读取到阻塞一定时间(阻塞时间或读取配置文件blocking的值)
DI()->redis->get_Brpop(队列键名,值, 库名);
//删除一个键值队适用于所有
DI()->redis->del(键名, 库名);
//自动增长
DI()->redis->get_incr(键名, 库名);
//切换DB并且获得操作实例
DI()->redis->get_redis(键名, 库名);
更多使用方法请参考Redis_Lite文件
- 科协带你开个2017年科技世界的总结会!
- 基于StockRanker算法的机器学习量化策略
- Enterprise Library深入解析与灵活应用(6):自己动手创建迷你版AOP框架
- 交易费用过高的比特币还能成为“未来货币”吗?
- 应用大数据,做好技术成果市场价值评估
- Linux和Windows的换行符
- 行业数据重要性不用多说,呕心整理分享(2)
- 云计算如何在银行业务发挥作用?
- SNH48 要推出定制 AI 形象,和初音未来有什么不同?
- 字节对齐
- 微信更新为小程序引入游戏功能,朋友圈又刷屏了
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
- Linux同步机制(二) - 条件变量,信号量,文件锁,栅栏
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Salesforce LWC学习(二十二) 简单知识总结篇二
- 初识Netty
- SpringCloud微服务项目实战 - 缓存详解及高效缓存接入
- Vue + Flask 实战开发系列(十)
- 【CS学习笔记】17、登录验证的难点
- CS学习笔记 | 18、密码哈希散列设置信任
- CS学习笔记 | 19、代码执行的方式
- chrome 插件通信DEOM
- rust 模块组织结构
- PCIe例程理解(一)用户逻辑模块(接收)仿真分析
- 细品服务并发限流+Redis-cell的使用
- 在VCUTRD 2020.1 里设置HDMI-TX显示QT界面
- 稀疏数组 & 环形队列
- Spring+Mybatis+Atomikos实现分布式事务
- Android低功耗蓝牙总结