zoukankan      html  css  js  c++  java
  • Redis系列-php怎么通过redis扩展使用redis

    From: http://blog.csdn.net/love__coder/article/details/8691679

    通过前面几篇blog,我们应该对redis有个大致的认识,这里再讲解下,php怎么连接redis服务器进行数据读写?

    1、安装php扩展

    a)安装php扩展phpredis:

    1. [root@xsf002 tool]# git clone https://github.com/nicolasff/phpredis.git phpredis  
    2. [root@xsf002 tool]# cd phpredis/  
    3. [root@xsf002 phpredis]# /usr/local/php/bin/phpize   #<SPAN style="TEXT-INDENT: 20px">假设 php目录:</SPAN><SPAN style="TEXT-INDENT: 20px">/usr/local/php</SPAN>  
    4. [root@xsf002 phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config  
    5. [root@xsf002 phpredis]# make  
    6. [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
    如果顺利,将得到类似如下提示:
    1. 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 文件中,添加配置:

    1. [redis]  
    2. 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不需要。请参看下面的代码示例:  

    1. <?php  
    2. $redis = new Redis(); #实例化redis类  
    3. $redis->connect('127.0.0.1'); #连接服务器  
    4. $redis->set('key', 'hello '); #调用方法,设置string类型值  
    5. $redis->append('key', 'world'); #修改string类型值  
    6. echo $redis->get('key');  #获取redis key的值,并输出显示   
    7. echo $redis->type('key'); #获取key 的数据类型  
    8. echo $redis->echo('will close...');# 输出字符串  
    9. $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

  • 相关阅读:
    160809207刘兆轩
    技术报告
    homework160809207刘兆轩
    施润行160809301(9)
    施润行160809301(8)
    施润行160809301(7)
    施润行160809301(6)
    施润行160809301(5)
    施润行160809301(作业4)
    施润行160809301(作业3)
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/5005907.html
Copyright © 2011-2022 走看看