Redis系列-php怎么通过redis扩展使用redis
From: http://blog.csdn.net/love__coder/article/details/8691679
通过前面几篇blog,我们应该对redis有个大致的认识,这里再讲解下,php怎么连接redis服务器进行数据读写?
1、安装php扩展
a)安装php扩展phpredis:
- [root@xsf002 tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
- [root@xsf002 tool]# cd phpredis/
- [root@xsf002 phpredis]# /usr/local/php/bin/phpize #<SPAN style="TEXT-INDENT: 20px">假设 php目录:</SPAN><SPAN style="TEXT-INDENT: 20px">/usr/local/php</SPAN>
- [root@xsf002 phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
- [root@xsf002 phpredis]# make
- [root@xsf002 phpredis]# make install
[root@xsf002 tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
[root@xsf002 tool]# cd phpredis/
[root@xsf002 phpredis]# /usr/local/php/bin/phpize #假设 php目录:/usr/local/php
[root@xsf002 phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@xsf002 phpredis]# make
[root@xsf002 phpredis]# make install
如果顺利,将得到类似如下提示:
- Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
php扩展文件目录下,将有个redis.so文件。
b)加载redis.so
在php.ini 文件中,添加配置:
- [redis]
- extension=redis.so
[redis]
extension=redis.so
重启web服务器,echo phpinfo() ,将看到大致如下显示:
2、通过扩展访问redis服务器
php如何使用redis服务器存取数据?无非是经过phpredis扩展模块,通过如下几个步骤:
1、实例化redis类 【new redis()】
2、调用redis类方法,连接redis服务器 【connect,pconnect】
3、设置连接选项【setOption】
4、存/取数据
5、关闭连接 【close】
如果使用默认选项,步骤3不需要。请参看下面的代码示例:
- <?php
- $redis = new Redis(); #实例化redis类
- $redis->connect('127.0.0.1'); #连接服务器
- $redis->set('key', 'hello '); #调用方法,设置string类型值
- $redis->append('key', 'world'); #修改string类型值
- echo $redis->get('key'); #获取redis key的值,并输出显示
- echo $redis->type('key'); #获取key 的数据类型
- echo $redis->echo('will close...');# 输出字符串
- $redis->close(); #关闭连接
<?php
$redis = new Redis(); #实例化redis类
$redis->connect('127.0.0.1'); #连接服务器
$redis->set('key', 'hello '); #调用方法,设置string类型值
$redis->append('key', 'world'); #修改string类型值
echo $redis->get('key'); #获取redis key的值,并输出显示
echo $redis->type('key'); #获取key 的数据类型
echo $redis->echo('will close...');# 输出字符串
$redis->close(); #关闭连接
通过上面的代码,我们基本完成一个简单redis的存取操作。下面罗列一些Redis类的一些属性及方法
a)连接redis server:
- connect :连接server
- pconnect :长连接
- auth :权限验证
- select :选择DB
- close : 关闭连接
- setOption : 设置 client 选项
- getOption : 获取client选项
- ping : ping redis server
- echo : 输出 字符串
注意,如果频繁操作redis,不停地connect 和close会很耗性能的,这个时候,建议用pconnect 建立个长连接
b)字符串读写函数
- append :在值的后面追加值
- decr :递减一个key的值
- incr :递增一个key的值
- get :获取一个值
- set :设置一个值
- getSet :设置值,并返回老值
- mGet :批量获取值
- mSet :批量设置值
- strlen :获取值长度
注意:如果能用批量操作尽量用批量,减少频繁连接redis数据库性能
c)hash读写函数
- hDel :删除一个多个域
- hExists :判断一个hash域是否存在
- hGet :获取hash域的值
- hGetAll :获取所有域值
- hIncrBy :自增长一个hash int域的值
- hKeys :获取hash 所有域
- hLen :获取域个数
- hMGet :批量获取域的值
- hMSet :批量设置域的值
- hSet :设置域的值
- hVals:得到所有域的值
d)list读写函数
- lInsert:插入元素
- lLen:list长度
- lPop:移除并获取第一个颜色
- lPush:插入一个元素
- lRem:移除元素
- lSet:设置元素值
e)set
- sAdd:增加一个或多个成员
- sIsMember:是否包含
- sMembers:得到成员
- sMove:移动成员
- sPop:移除成员
- sRandMember:得到随机成员
- sRem:删除
f)sorted set
- zAdd:增加一个或多个
- zCard:成员个数
- zIncrBy:递增成员score
- zRange:返回索引范围内的成员
- zRangeByScore :返回score范围内的成员
- zScore:获取成员score
- zRem:移除一个或多个成员
更多信息请参考:https://github.com/nicolasff/phpredis
http://redis.io/clients
Redis系列-php怎么通过redis扩展使用redis的更多相关文章
- redis系列(三):python操作redis
1.安装包 pip install redis 2.使用 # -*- coding: utf-8 -*- # @Time : 18-12-7 下午4:33 # @Author : Felix Wang ...
- 【Redis系列】Spring boot实现监听Redis key失效事件
talk is cheap, show me the code. 一.开启Redis key过期提醒 方式二:修改配置文件 redis.conf # 默认 notify-keyspace-events ...
- Redis系列总结--这几点你会了吗?
文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 前面几篇已经对Redis中几个关键知识点做了介绍,本篇主要对Redis系列做一下总结以及对Redis中常见面试 ...
- Redis系列5:深入分析Cluster 集群模式
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) 1 背景 前面我们 ...
- Redis系列(2)之数据类型
Redis系列(2)之数据类型 <Redis系列(1)之安装>中介绍了Redis支持以下几种数据类型,那么本节主要介绍学习下这几种数据类型的基本操作 字符串类型,string 散列类型,h ...
- Redis系列整理
0.Redis系列-安装部署维护篇 1.Redis系列-远程连接redis并给redis加锁 2.Redis系列-存储篇string主要操作函数小结 3.Redis系列-存储篇list主要操作函数小结 ...
- Redis 系列(04-2)Redis原理 - 内存回收
目录 Redis 系列(04-2)Redis原理 - 内存回收 Redis 系列目录 1. 过期策略 1.1 定时过期(主动淘汰) 1.2 惰性过期(被动淘汰) 1.3 定期过期 2. 淘汰策略 2. ...
- Redis 系列
Redis 系列 [Redis 系列(01)安装配制] [Redis 系列(02)数据结构] [Redis 系列(03-1)进阶 - 发布订阅] [Redis 系列(03-2)进阶 - 事务] [Re ...
- 【目录】redis 系列篇
随笔分类 - redis 系列篇 redis 系列27 Cluster高可用 (2) 摘要: 一. ASK错误 集群上篇最后讲到,对于重新分片由redis-trib负责执行,关于该工具以后再介绍.在进 ...
- Redis系列4:高可用之Sentinel(哨兵模式)
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 1 背景 从第三篇 Redis系列3:高可用之主从架构 ,我们知道,为Re ...
随机推荐
- idea Error:(1, 10) java: 需要class, interface或enum, 未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533
1.未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533 这些乱七吧八遭的错误如果很多的话 , 尝试 重新修改下生成目录 修改下语言等级 上述方法都不行 ,还报错 ...
- sqlserver 目录名称无效解决办法
问题描述: 1.sqlserver 打开表提示:目录名称无效 2.在执行sql语句时提示:在执行批处理时出现错误.错误消息为: 目录名无效 3.所有的数据库都存在1跟2的问题 问题分析: 1.操作系统 ...
- 快速理解RequireJs(转)
RequireJs已经流行很久了,我们在项目中也打算使用它.它提供了以下功能: 声明不同js文件之间的依赖 可以按需.并行.延时载入js库 可以让我们的代码以模块化的方式组织 初看起来并不复杂. 在h ...
- Emacs代码折叠
进入HideShow mode: M-x hs-minor-mode(幸亏有tab键..要不这么长的命令=.=) 主要的功能: * C-c @ C-M-s 显示所有的代码 * C-c @ C-M-h ...
- [ADC]TI am4378 ADC采样设置问题(am335x类似)
这段时间在调试AM4378的ADC问题,发现采样到的数据和真实输入波形有所出入,比如输入是1ms的周期,50%占空比的信号,但是采样的数据描点总是偏差较大,数据如下 iio device number ...
- 全国地区的省份、城市、区县 最新Sql脚本
IF (EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_Province]') AND type =' ...
- Androidn Notification的使用,解决找不到setLatestEventInfo方法
转自:http://blog.csdn.net/songyachao/article/details/51245370#comments 今天使用4.0.3使用 Notification notifi ...
- SparkR(R on Spark)编程指南 含 dataframe操作
SparkR(R on Spark)编程指南 Spark 2015-06-09 28155 1评论 下载为PDF 为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...
- dplyr包
是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley Wickh ...
- 高大上的动态CSS
项目里要添加 custom css 功能 (dynamic stylesheet ),总结一下实现方法. 1.在JSP中动态设定文件path 预先生成一些css文件,由用户选择,在jsp被请求时,动态 ...