在php中 为什么不能使用redis类

作者&投稿:子车居 (若有异议请与网页底部的电邮联系)
php 命令行模式下redis 无法使用~

php 命令行模式使用的php.ini 可能和正常的不是一个,所以,你需要在命令行下执行。
php --ini
看一下加载的ini是否和网页的是一个。如果是一个的话,还有看一下 php.ini 里 extension_dir 的路径,改为绝对路径。 否则将正常的替换到上图 Loaded Configuration File 目录。

请问同学你在php.ini 加

extension="redis.so" (linux)
没?

  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!

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()

在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


麻阳苗族自治县17669527054: php中不能运用mysqli函数,php.ini中已经配置了,但是用不了mysqli -
乾泰欣诺: 1. 通过使用 phpinfo()函数可以查看 mysqli 的工作情况.2. Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for use...

麻阳苗族自治县17669527054: PHP无法连接MySQLi函数 请问您是怎么解决的 -
乾泰欣诺: 无法连接的话,问题不在http.conf 问题在php.ini 确定你php.ini中 mysqli.dll这个模块前面的分号已经删掉了 ;extension=php_mysqli.dll[这个分号删掉] 否则php是不会加载这个模块,也就是说, 你怎么都不能使用mysqli这套库刚看到别人说的一句话,突然想到了一个问题忘了说了 回来补充一下 改完PHP.ini后记得重启apache 要不然修改是不生效的

麻阳苗族自治县17669527054: PHP中include和required区别是什么? -
乾泰欣诺:require()语句的功能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()...

麻阳苗族自治县17669527054: print、print - r、echo到底有什么区别? -
乾泰欣诺: 1、性质不同 echo是PHP语言结构而非函数,print和print_r都是函数 2、返回值不同 echo没有返回值,print和print_r可以有返回值(即便没有用) 3、输出值不同 print()只能打印出简单类型变量的值(如int,string),print_r() 可以打印出复杂类型变量的值(如数组,对象),echo 可以输出一个或者多个字符串. 4、执行速率不同在PHP中的执行速率从快到慢依次为:echo(), print(), print_r() 5、用法不同 echo无法被变量函数调用,print和print_r可以被方法调用

麻阳苗族自治县17669527054: PHP中include和require的区别详解 -
乾泰欣诺: 1、概要 require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()...

麻阳苗族自治县17669527054: PHP中include和required区别是什么?
乾泰欣诺: 一、require()所在位置的语句不被执行,require()所包含的文件中的语句也不会被执行. 二、require()语句的功能完全适用于include()语句.下边介绍require()语句所没有的include()语句的功能和特点. include语句只有在被执行...

麻阳苗族自治县17669527054: php codeigniter框架中 redirect 跳转页面为什么会无效
乾泰欣诺: codeigniter的session,也就是$this-&gt;session-&gt;userdata,它的实现机理并不是真正的session.$this-&gt;session-&gt;userdata的实现可以在底层看到是采用cookie存储实现的,所以,你的问题可能并非session的问题,而是cookie的问题.如果cookie无法使用的话,$this-&gt;session-&gt;userdata是用不了的.我曾经写过一篇说明这个的文章,在我的网站上.地址在我的介绍里,有兴趣自己看看.

麻阳苗族自治县17669527054: PHP出现如下Fatal error: Call to undefined function curl - multi - init() in D:\wwwroot\so\include\spide -
乾泰欣诺: 这个错误是 告诉你 curl_multi_init() 不能使用 1. PHP 5 版本才可以使用这个 函数2 . 必...

麻阳苗族自治县17669527054: javascript中定义的变量abc在php中怎么才能使用这个变量 -
乾泰欣诺: js和php变量是不能互通的,当然,php作为嵌入式语言可以将变量值输出到html文档里做js变量用,但js变量php不能直接调用,可以用ajak异步传输将js变量值及时传给php使用

麻阳苗族自治县17669527054: php定义的函数只能在php中调用吗?能不能在jquery或js或html中调用?求答... -
乾泰欣诺: 我觉的 首先你要明白两个概念:1. php是服务器端语言.2. jquery、js、html是客户端语言.所以完全是不一样的.php在客户端输出以后jquery、js、html才可以使用 如果能直接用就不会出现ajax了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网