php支持redis
1. redis都支持哪些語言,java,php以外還有嗎支持Android,C#嗎對於Android怎麼用
Java連接redis的使用示例
Redis是開源的key-value存儲工具,redis通常用來存儲結構化的數據,因為redis的key可以包含String、hash、listset和sorted list。
Redisclient支持多種語言,包括:c、C++、C#、php、java、python、go等語言,根據自己的開發語言,選擇合適的redis client版本類型即可。我是使用java語言開發的,針對java語言,redis client也提供了多種客戶端支持,按照推薦類型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前兩種類型是比較推薦的,我們採用了Redisson類型版本作為redisclient的使用。
Redisson版的redis可發工程搭建
1. 新建maven工程
2. 在pom.xml文件的dependencies節點下增加如下內容:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
3. 保存pom.xml後,等eclispe工程構建完成後即可進行開發了
開發示例
下面是演示連接redis伺服器、保存讀取concurrentMap對象、保存讀取set對象和保存讀取Queue對象的示例代碼,代碼比較簡單,這里就不再詳細講解了,代碼如下:
[java] view plain
package com.my.test.redis;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import org.redisson.Config;
import org.redisson.Redisson;
public class RedisExample {
/**
* @param args
*/
public static void main(String[] args) {
// 1.初始化
Config config = new Config();
config.setConnectionPoolSize(10);
config.addAddress("127.0.0.1:6379");
Redisson redisson = Redisson.create(config);
System.out.println("reids連接成功...");
// 2.測試concurrentMap,put方法的時候就會同步到redis中
ConcurrentMap<String, Object> map = redisson.getMap("FirstMap");
map.put("wuguowei", "男");
map.put("zhangsan", "nan");
map.put("lisi", "女");
ConcurrentMap resultMap = redisson.getMap("FirstMap");
System.out.println("resultMap==" + resultMap.keySet());
// 2.測試Set集合
Set mySet = redisson.getSet("MySet");
mySet.add("wuguowei");
mySet.add("lisi");
Set resultSet = redisson.getSet("MySet");
System.out.println("resultSet===" + resultSet.size());
//3.測試Queue隊列
Queue myQueue = redisson.getQueue("FirstQueue");
myQueue.add("wuguowei");
myQueue.add("lili");
myQueue.add("zhangsan");
myQueue.peek();
myQueue.poll();
Queue resultQueue=redisson.getQueue("FirstQueue");
System.out.println("resultQueue==="+resultQueue);
// 關閉連接
redisson.shutdown();
}
}
2. 用phpredis操作redis集群支持publish和subscribe嗎
用phpredis操作redis集群支持publish和subscribe
參數可選Redis::MULTI或Redis::PIPELINE. 默認是 Redis::MULTI
Redis::MULTI:將多個操作當成一個事務執行
Redis::PIPELINE:讓(多條)執行命令簡單的,更加快速的發送給伺服器,但是沒有任何原子性的保證
discard:刪除一個事務
返回值
multi(),返回一個redis對象,並進入multi-mode模式,一旦進入multi-mode模式,
以後調用的所有方法都會返回相同的對象,只到exec()方法被調用。
watch, unwatch (代碼測試後,不能達到所說的效果)
監測一個key的值是否被其它的程序更改。如果這個key在watch 和 exec (方法)間被修改,
這個 MULTI/EXEC 事務的執行將失敗(return false)
unwatch 取消被這個程序監測的所有key
3. 在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!
4. phpredis 3.1.2升級到4.3.0修改點
關於連接池:
./README.markdown:Starting from version 4.2.1, it became possible to use connection pooling by setting INI variable redis.pconnect.pooling_enabled to 1.
從4.2.1開始支持連接池
相關兩個配置:
/* redis pconnect */
PHP_INI_ENTRY("redis.pconnect.pooling_enabled", "1", PHP_INI_ALL, NULL) //默認支持連接池
PHP_INI_ENTRY("redis.pconnect.connection_limit", "0", PHP_INI_ALL, NULL) //默認最大連接池的個數為0 還是重復用之前的連接 如果沒有之前的連接(php 的pconect會在fpm進程周期內被重用) 那麼創建新的
這兩個值需要在配置文件中配置,比如在php.ini文件配置.
5. php如何解決redis的存取亂碼問題
php文件的編碼格式:
header("charset=utf-8");
在存儲前,先把存儲的字元串轉碼。
$string = iconv('UTF-8','GBK',$string);
這時候存儲在redis中的中文就是GBK字元集的,讀取的時候不是亂碼了。
原理是window大部分系統上支持GBK字元集。
6. php redis 如何解決回復功能
redis會將數據存儲在內存中,斷電丟失。這個要注意一下,如有必要就做個持久化。持久化的方法一言難盡,可以參考網上的文章。
php的redis擴展叫php-redis。網上有php-redis的中文手冊,下面給你一個示例:
<?php
$redis=newredis();
$result=$redis->connect('127.0.0.1',6379);//6379是默認埠
$result=$redis->set('9639002718',"comment");//設置鍵值
echo$result=$redis->get('9639002718');//獲取鍵值
$all=$redis->getMultiple(array('9639002718','9639002718'));//同時獲得多個鍵值
//沒有提供獲得所有鍵值的方法。下面這句我不確定是否能用,你可以試一試。
$all=$redis->getMultiple(array('*'));
望採納,謝謝支持!
7. linux 下php怎麼安裝redis
1、PHP redis下載地址:http://pecl.php.net/package/redis
[cc lang="bash" escaped="true"][root@Redis ~]# wget http://pecl.php.net/get/redis-2.2.7.tgz[/cc]
2、解壓安裝並進入Redis目錄
[cc lang="bash" escaped="true"][root@Redis ~]# tar xzf redis-2.2.5.tgz
[root@Redis ~]# cd redis-2.2.5[/cc]
3、在Redis文件夾下,生成configure配置文件
[cc lang="bash" escaped="true"][root@Redis redis-2.2.5]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Mole Api No: 20090626
Zend Extension Api No: 220090626
[root@Redis redis-2.2.5]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@Redis redis-2.2.5]# make
[root@Redis redis-2.2.5]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
cp: cannot create regular file `/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/#INST@6338#': Permission denied
make: *** [install-moles] Error 1
注意:一定要用root用戶。
[root@Redis redis-2.2.5]# su
Password:
[root@web redis-2.2.5]# make install[/cc]
4、在PHP配置文件php.ini裡面載入Redis擴展
[cc lang="vim" escaped="true"]extension=redis.so[/cc]
5、查看phpinfo,Redis擴展是否載入
redis
Redis Support enabled
Redis Version 2.2.5
至此,Redis擴展已經安裝成功並載入,可以用PHP操作Redis了。
附:
windows下安裝Redis擴展就更加簡單了,找到對應的版本,下載dll文件,放到PHP目錄下面的ext,修改PHP的配置文件php.ini,載入extension=php_redis.dll,重啟Apache,查看phpinfo是否有Redis,如果有就恭喜你,已經安裝成功了,就是這么簡單。
8. linux下怎麼安裝php的redis擴展
你好,
1、安裝編譯工具
2、安裝tcl組件包(安裝Redis需要tcl支持)
3、安裝Redis
4、設置redis開機啟動
5、設置redis配置文件參數
6、測試redis資料庫
7、通過php程序連接redis資料庫
#php必須先安裝Redis擴展
至此,Linux下Redis伺服器安裝配置完成。
9. linux 安裝redis 還需要安裝php擴展嗎
1、安裝redis
上傳phpredis-2.2.4.tar.gz到/usr/local/src目錄
cd /usr/local/src #進入軟體包存放目錄
tar zxvf phpredis-2.2.4.tar.gz #解壓
cd phpredis-2.2.4 #進入安裝目錄
/usr/local/php/bin/phpize #用phpize生成configure配置文件
./configure --with-php-config=/usr/local/php/bin/php-config #配置
make #編譯
make install #安裝
安裝完成之後,出現下面的安裝路徑
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
2、配置php支持
vi /usr/local/php/etc/php.ini #編輯配置文件,在最後一行添加以下內容
添加
extension="redis.so"
:wq! #保存退出
3 重啟服務
sudo service nginx restart
sudo /etc/init.d/php-fpm restart
10. 怎麼安裝redis PHP擴展,windows下
1、首先到相應網站下載redis:
下載完成後解壓到任意盤符如:D:/redis
裡麵包括:如圖所示。
redis-server.exe:服務程序
redis-check-mp.exe:本地資料庫檢查
redis-check-aof.exe:更新日誌檢查
redis-benchmark.exe:性能測試,用以模擬同時由N個客戶端發送M個 SETs/GETs 查詢 (類似於 Apache 的ab 工具).
當然還需要一個:redis.conf(具體內容網上隨便搜都會有)
8、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_mp($redis->mget($array_get));