Redis系列-php怎么通过redis扩展使用redis

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

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

1、安装php扩展

a)安装php扩展phpredis:

[plain] view plaincopyprint?

  1. [[email protected] tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
  2. [[email protected] tool]# cd phpredis/
  3. [[email protected] phpredis]# /usr/local/php/bin/phpize   #<SPAN style="TEXT-INDENT: 20px">假设 php目录:</SPAN><SPAN style="TEXT-INDENT: 20px">/usr/local/php</SPAN>
  4. [[email protected] phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
  5. [[email protected] phpredis]# make
  6. [[email protected] phpredis]# make install
[[email protected] tool]# git clone https://github.com/nicolasff/phpredis.git phpredis
[[email protected] tool]# cd phpredis/
[[email protected] phpredis]# /usr/local/php/bin/phpize   #假设 php目录:/usr/local/php
[[email protected] phpredis]# ./configure --with-php-config=/usr/local/php/bin/php-config
[[email protected] phpredis]# make
[[email protected] phpredis]# make install

如果顺利,将得到类似如下提示:

[plain] view plaincopyprint?

  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 文件中,添加配置:

[plain] view plaincopyprint?

  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不需要。请参看下面的代码示例:

[php] view plaincopyprint?

  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

时间: 2025-01-02 19:27:02

Redis系列-php怎么通过redis扩展使用redis的相关文章

Redis系列整理

0.Redis系列-安装部署维护篇 1.Redis系列-远程连接redis并给redis加锁 2.Redis系列-存储篇string主要操作函数小结 3.Redis系列-存储篇list主要操作函数小结 4.Redis系列-存储篇set主要操作函数小结 5.Redis系列-存储篇hash主要操作函数小结 6.使用场景   redis 五种数据类型的使用场景 Nosql 介绍及其使用场景 Redis内存使用优化与存储 HA(High Available), 高可用性群集

Redis系列(2)之数据类型

Redis系列(2)之数据类型 <Redis系列(1)之安装>中介绍了Redis支持以下几种数据类型,那么本节主要介绍学习下这几种数据类型的基本操作 字符串类型,string 散列类型,hash 列表类型,list 集合类型,set 有序集合类型,zset 1. 字符串类型 赋值与取值 SET 与 GET. 当键不存在时候返回为空. 1 127.0.0.1:6379> set key hello 2 OK 3 127.0.0.1:6379> get key 4 "hell

redis 系列19 客户端

原文:redis 系列19 客户端 一. 概述 Redis服务器是可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复.通过使用I/O多路复用技术实现的文件事件处理器,Redis服务器使用单进程单线程的方式来处理命令请求,并与多个客户端进行网络通信. 1.1 伪客户端和普通客户端 对于每个与服务器进行连接的客户端,服务器都为这些客户端建立了相应的redis.h/redisClient结构(客户端状态),这个结构保存了客

Redis 系列(04-2)Redis原理 - 内存回收

目录 Redis 系列(04-2)Redis原理 - 内存回收 Redis 系列目录 1. 过期策略 1.1 定时过期(主动淘汰) 1.2 惰性过期(被动淘汰) 1.3 定期过期 2. 淘汰策略 2.1 最大内存设置 2.2 淘汰策略 2.4 LFU Redis 系列(04-2)Redis原理 - 内存回收 Redis 系列目录 相关文档推荐: Redis - LRU Reids 所有的数据都是存储在内存中的,在某些情况下需要对占用的内存空间进行回收.内存回收主要分为两类,一类是 key 过期,

Redis系列(三):Redis集群的水平扩展与伸缩

一.Redis集群的水平扩展 Redis3.0版本以后,有了集群的功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,接下来介绍下Redis高可用集群如何做水平扩展,在原集群的6个节点的基础上新增2个节点,由原来的3主3从变成4主4从,原先的3主3从部署详见Redis系列(二):Redis高可用集群,如下图: 二.水平扩展具体操作 ① 将redis-5.0.2文件夹拷贝到新的主机192.168.160.154上去,(1)scp -r /usr/local/redis

5.【Redis系列】Redis的高级应用-位图

原文:5.[Redis系列]Redis的高级应用-位图 假设一个应用场景:我们需要记录用户一年的签到记录,签到了是1,没签是0,记录365天,当用户上亿后,存储空间是惊人的. 为了解决这个问题,redis提供了位图的数据结构.这样每天的签到记录只占据一个位,365天就是365个位,46个字节完全可以容纳下. 位图不是特殊的数据结构,它的内容就是普通的字符串,也就是byte数组,我们可以用set/get方法来设置和获取位图的内容,也可以使用位图操作getbit和setbit将byte数组看成位数组

2.【Redis系列】Redis基础数据结构

原文:2.[Redis系列]Redis基础数据结构 千里之行始于足下,我们先来看看redis的基础知识. Redis有5中基本数据类型:字符串(string).列表(list).集合(set).有序集合(zset).字典(hash).熟练掌握这5种基本数据结构也是最基本最重要的部分. String(字符串) 字符串是redis中最简单的数据结构,Redis所有的数据结构都是以唯一key作为名称,然后通过唯一的key来获取相应的redis数据.不同类型的数据结构的差异就在于value的结构不一样.

Redis系列(1)之安装

Redis系列(1)之安装 由于项目的需要,最近需要研究下Redis.Redis是个很轻量级的NoSql内存数据库,它有多轻量级的呢,用C写的,源码只有3万行,空的数据库只占1M内存.它的功能很丰富,可以将其用作缓存,队列系统等.我们的项目就是用其作为缓存系统.关于Redis的介绍这里就不多说,刚上手完了一会,感觉还不错.那么熟悉Redis就从安装开始. 1. Redis 单机的安装 相比于Hbase的安装,Redis的安装非常简单. 首先从官网上下载安装包,注意Redis的版本规则是次版本(即

Redis系列三:Redis常用设置

一.redis的配置文件redis.conf位置 centos:默认在/etc/redis.conf ubuntu:可以从解压缩后的目录里将配置文件复制到该目录 二.启动redis时指定配置文件 $redis-server /etc/redis.conf 三.常用配置说明 daemonize yes #设置后台运行,默认redis不在后台运行 logfile "/var/log/redis.log" #设置log文件地址,默认使用标准输出,即直接打印在命令行终端的窗口上 require