文档章节

Windows下安装redis和在php中使用phpredis扩展

Junn
 Junn
发布于 2014/06/18 15:32
字数 1624
阅读 3.4K
收藏 0

1、redis简介

redis是一个key-value存储系统。和Memcached类似,它支持存 储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都 是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

2、windows下安装redis

下载地址:https://github.com/dmajkic/redis/downloadshttp://pan.baidu.com/s/1gdl9BZt。下载到的Redis支持32bit和64bit。根据自己实际情况选择,我选择64bit。把64bit文件内容拷贝到需要安装的目录下,比如:D:\dev\redis-2.4.5。

Redis文件夹有以下几个文件

redis-server.exe:服务程序
redis-check-dump.exe:本地数据库检查
redis-check-aof.exe:更新日志检查
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于Apache的ab工具)
redis.conf:配置文件

打开一个cmd窗口,使用cd命令切换到指定目录(D:\dev\redis-2.4.5)运行 redis-server.exe redis.conf 。运行以后出现如下界面。

这就说明Redis服务端已经安装成功。

重新打开一个cmd窗口,使用cd命令切换到指定目录(D:\dev\redis-2.4.5)运行 redis-cli.exe -h 127.0.0.1 -p 6379,其中 127.0.0.1是本地ip,6379是redis服务端的默认端口。运行成功如下图所示。
这样,Redis windows环境下搭建已经完成,是不是很简单。

这样,Redis windows环境下搭建已经完成,是不是很简单。

环境已经搭建好,总得测试下吧。比如:存储一个key为test,value为hello world的字符串,然后获取key值。

正确输出 hell world,测试成功!

3、PHP中添加phpredis扩展

下载 dll文件

http://download.csdn.net/download/bluesky321/5355093

php_redis.dll 扩展 For PHP5.4.x

PHP5.4.x 的 redis 扩展 php_redis.dll

测试平台:Windows XPx32 (FastCGI PHP5.4.9 Nginx 1.4.0)

包含 Non Thread Safe 和 Thread Safe 两个版本

首先把php_redis.dll 和 php_igbinary.dll 放入PHP的ext文件夹,然后在php.ini配置文件里添加如下代码:

extension=php_igbinary.dll

extension=php_redis.dll

重启web服务器

注意:extension=php_igbinary.dll一定要放在extension=php_redis.dll的前面,否则此扩展不会生效

4、PHP中使用

测试代码一:

<?php
    $redis = new Redis();
    $redis->connect('127.0.0.1',6379);
    $redis->set('test','hello redis');
    echo $redis->get('test');
?>

输出 hello  redis 成功!

 

测试代码二:

<?php
    $redis = new Redis();  
    $redis->connect("192.168.138.2","6379");  //php客户端设置的ip及端口  
    //存储一个 值  
    $redis->set("say","Hello World");  
    echo $redis->get("say");     //应输出Hello World  
      
    //存储多个值  
    $array = array('first_key'=>'first_val',  
              'second_key'=>'second_val',  
              'third_key'=>'third_val');  
    $array_get = array('first_key','second_key','third_key');  
    $redis->mset($array);  
    var_dump($redis->mget($array_get));
?>

 

 

附:windows下redis的安装配置和php扩展使用phpredis

 

 

一、windows下安装reid

1、 首先安装先下载redis数据库
   
  下载地址: https://github.com/dmajkic/redis/downloadshttp://pan.baidu.com/s/1gdl9BZt

2、解压安装文件。得到以下目录

   

   redis-server.exe:服务程序

   redis-check-dump.exe:本地数据库检查

   redis-check-aof.exe:更新日志检查

   redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).

   redis.conf    配置文件

3、启动Redis服务(conf文件指定配置文件,若不指定则默认):

    D:\redis-2.0.2>redis-server.exe redis.conf

    

4、启动cmd窗口要一直开着,关闭后则Redis服务关闭。

       这时服务开启着,另外开一个窗口进行,设置客户端:

        D:\redis-2.0.2>redis-cli.exe -h 202.117.16.133 -p 6379

        然后可以开始玩了:
     
        

 
二、php5.4 连接使用redis

1、先下载 phpredis.dll扩展包。下载地址:  https://github.com/nicolasff/phpredis/downloads

       

       用phpinfo 查看到时TS vc9。那么下载的版本就对应好  

      ts版 phpredis_5.4_vc9_ts.7z                         nts版  phpredis_5.4_vc9_nts.7z     

2、解压缩之后得到两个文件,分别将两个文件复制到php 目录的 ext目录下。

     

3、修改php.ini文件。加入extension 扩展 

         extension=php_igbinary.dll
         extension=php_redis.dll

4、 重启apache ,查看phpinfo 界面。如下则表示安装成功
   
 

5、phpredis   hellow word    开始你的redis使用

<?php

    $redis=new Redis();                     //redis对象
    $redis->connect("127.0.0.1","6379");    //连接redis服务器
    $redis->set("test","Hello World");      //set字符串值
    echo $redis->get("test"); 

?>

 

 

附: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:移除一个或多个成员


在Windows下为PHP5.6安装redis扩展和memcached扩展

© 著作权归作者所有

Junn
粉丝 143
博文 412
码字总数 288918
作品 0
海淀
技术主管
私信 提问
加载中

评论(0)

Windows下安装phpRedis扩展

Windows下安装phpRedis扩展 通常在做PHP程序测试时,会用到Redis。而一般测试都是在Windows下进行的,所以需要在Windows环境下安装phpRedis扩展,用以支持php对Redis的访问。 工具/原料 php调...

梦梦阁
2018/10/17
35
0
PHP操作redis的两种方式

随着redis使用越来越广泛,各种应用系统几乎都会嵌入redis。当然,PHP也不例外。在我接触到的项目中,主要是使用redis作为缓存服务器。但是对于PHP来说,它本身并不支持redis。所以说这里我们...

梦梦阁
2018/06/06
60
0
PHP 安装 phpredis 扩展(二)

本文主要介绍为 PHP 安装 扩展,并用 PHP 代码连接 Redis 服务器。 一、安装 phpredis 扩展 1. Linux、macOS 下安装 下载、解压、安装、编译: 编译成功后会提示一个路径,表示已经将扩展放置...

天秤vs永恒
2016/11/26
102
0
Windows下redis 安装与PHP使用

一、 安装redis及启用服务 1 下载redis服务端 下载地址https://github.com/dmajkic/redis/downloads。下载到的Redis支持32bit和64bit。根据自己实际情况选择,我选择32bit。把32bit文件内容拷...

tree2013
2016/02/17
29
0
关于phpredis安装的一点坑

安装注意版本!在phpredis的版本不是都有对应的redis版本可以下载哦~ 另外在安装的时候MAC就直接下载,windows则是需要点进DLL中选择正确的版本 http://pecl.php.net/package/redis 这里的V...

0_0Loong
2018/05/22
204
0

没有更多内容

加载失败,请刷新页面

加载更多

Yum命令即将灭亡,快来一起拥抱DNF

一、基本介绍 DNF是Dandified yum的缩写,DNF三个字母却没有一个来自Yum。DNF也是基于RPM的包管理工具,其首先在Fedora系统中出现,已经成为Fedora系统的默认的包管理工具。 CentOS8启用了D...

听风的小猪
2分钟前
5
0
HashMap的实现原理

HashMap的实现原理,一句话概括下:HashMap底层是一个数组,数组的每个元素是一个链表。 下面为HashMap构造函数的源码: public HashMap(int initialCapacity, float loadFactor) {//初...

水木星辰
9分钟前
11
0
如何在悬停而不是单击时使Twitter Bootstrap菜单下拉列表

问题: I'd like to have my Bootstrap menu automatically drop down on hover, rather than having to click the menu title. 我想让我的Bootstrap菜单在悬停时自动下拉,而不必单击菜单标......

javail
14分钟前
11
0
Binomial

题目:https://www.codewars.com/kata/540d0fdd3b6532e5c3000b5b/ 主要思路是提取系数 a和系数b,以及指数e。然后使用二项式定理计算每一项的系数,最后将结果转换成字符串。 在转换过程中,...

reter
19分钟前
10
0
老白学编程 - “autotools” 的实例分析-netdata

概述 学了几天autotool系列的知识, 找个实际项目, 对照着分析一下,由于知识有限,不知道能深入到什么程度, 期待。 Netdata Netdata是个监控软件,做的很不错, "秒级"是他的一个特色,详...

机械猿
22分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部