在php中 为啥不能使用redis类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在php中 为啥不能使用redis类相关的知识,希望对你有一定的参考价值。

  redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,php客户端,使用很方便。
  若想在PHP中使用redis,首先要先安装redis。然后在PHP中配置扩展。
  安装redis。
  首先下载好redis安装文件,解压到D盘或其他盘。
  然后通过Dos命令行进行安装。
  把这个文件夹复制到其它地方,比如D:\\redis 目录下。
  打开一个cmd窗口 使用cd命令切换目录到D:\\redis 运行 redis-server.exe redis.conf
  如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。
这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379

这时候,就已经完成配置了。
完成了配置之后,要在PHP中添加redis的扩展,之后才可以用PHP灵活的使用它。
在windows下安装php的redis扩展非常简单,下载一个.dll扩展包放到php的ext目录下,在php.ini里边添加一行配置就可以了。

php代码测试

redis=newRedis();redis->connect(‘127.0.0.1′,6379);
redis−>set(‘test′,′helloworld!′);echoredis->get(‘test’);

输出hello world!
参考技术A 1、安装php扩展
a)安装php扩展phpredis:

[plain] view plaincopy
[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
如果顺利,将得到类似如下提示:

[plain] view plaincopy
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
php扩展文件目录下,将有个redis.so文件。

b)加载redis.so
在php.ini 文件中,添加配置:

[plain] view plaincopy
[redis]
extension=redis.so
重启web服务器,echo phpinfo()
参考技术B 在Mac OS上安装redis
首先是安装,它会默认安装到/usr/local/bin下

代码如下:

cd /tmp
wget http://redis.googlecode.com/files/redis-2.6.9.tar.gz
tar -zxf redis-2.6.9.tar.gz
cd redis-2.6.9
make
sudo make install

以上是关于在php中 为啥不能使用redis类的主要内容,如果未能解决你的问题,请参考以下文章

为啥不能在 PHP 中从抽象类中调用抽象函数?

为啥我不能在其他类或函数中使用我的 Propel ORM 类?

为啥我不能将 PHP 类实例存储为 SESSION 变量

php easyadmin 为啥不能用Db类?

为啥“WHERE”查询不能在 php 中使用 SQLITE [重复]

为啥 PHP 的空合并运算符 (??) 不能处理具有不同可见性的类常量?