在php中 为什么不能使用redis类
作者&投稿:子车居 (若有异议请与网页底部的电邮联系)
php 命令行模式使用的php.ini 可能和正常的不是一个,所以,你需要在命令行下执行。
php --ini
看一下加载的ini是否和网页的是一个。如果是一个的话,还有看一下 php.ini 里 extension_dir 的路径,改为绝对路径。 否则将正常的替换到上图 Loaded Configuration File 目录。
请问同学你在php.ini 加
extension="redis.so" (linux)
没?
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
乾泰欣诺: 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->session->userdata,它的实现机理并不是真正的session.$this->session->userdata的实现可以在底层看到是采用cookie存储实现的,所以,你的问题可能并非session的问题,而是cookie的问题.如果cookie无法使用的话,$this->session->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了.