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