註:轉載請註明出處,謝謝O(∩_∩)O~ 概述
概述內容摘抄自官網:
Redis 是一個開源(BSD許可)的,記憶體中的資料結構儲存系統,它可以用作資料庫、緩衝和訊息中介軟體. 它支援多種類型的資料結構,如 字串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 與範圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢. Redis 內建了 複製(replication), LUA指令碼(Lua scripting), LRU驅動事件(LRU eviction), 事務(transactions) 和不同層級的 磁碟持久化(persistence), 並通過 Redis哨兵(Sentinel) 和自動 分區(Cluster)提供高可用性(high availability).
你可以對這些類型執行 原子操作 , 列如: 字串(strings)的append 命令; 散列(hashes)的hincrby命令; 列表(lists)的lpush命令; 集合(sets)計算交集sinter命令, 計算並集union命令 和 計算差集sdiff命令; 或者 在有序集合(sorted sets)裡面擷取成員的最高排名zrangebyscore命令.
為了實現其卓越的效能, Redis 採用運行在 記憶體中的資料集工作方式. 根據您的使用方式, 您可以每隔一定時間將 資料集匯出到磁碟 , 或者 追加到命令日誌中. 您也可以關閉持久化功能,將Redis作為一個高效的網路的快取資料功能使用.
Redis 同樣支援 主從複製(能自動重連和網路斷開時自動重新同步),並且第一次同步是快速的非阻塞試的同步. 其他功能包括: 事務(Transactions) 訂閱分發(Pub/Sub) LUA指令碼(Lua scripting) 到期自動刪除key 記憶體回收 自動容錯移轉
您可以使用 大多數的程式設計語言 來使用Redis.
Redis 使用 ANSI C 編寫並且能在絕大Linux系統上運行,基於BSD協議,對OS X沒有外部依賴. 我們支援Linux 和 OS X兩種系統的開發與測試,我們推薦使用Linux部署. Redis 可以像SmartOS一樣運行在Solaris系統中, 但是我們會最大力度的支援它. 官方不支援Windos版本的Redis,但微軟開發和維護著支援win-64 的Redis版本
OK,以上都是說過場,下面開始實戰。 Redis的安裝、運行
server版本的redis安裝請移步:把redis安裝到ubuntu-14.04.1-server
推薦在linux下使用Redis,windows版本的也有,不過不是官方維護的,由微軟的技術團隊負責維護和支援(當然跟官方的一樣有權威性。)。下面將介紹在ubuntu下如何安裝,其他linux版本的其實也大同小異了。
目前redis最新版本是3.0.7,具體更新等內容請移至官網查看,輸入以下命令:
$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz $ tar xzf redis-3.0.7.tar.gz $ cd redis-3.0.7 $ make
第一個命令是下載軟體包,第二個事解壓縮,第三個是進入redis目錄,第四個是編譯(c開發的不想java的拿來即用,不同平台編譯方式會略有差異,所以不會給直接能啟動並執行檔案,當然,也給不出(;`O´)o)。
使用以下命令運行redis:
redis-server
經過以上幾步,redis服務就已經開始運行了,此處採用的不含配置的啟動方式,也可以使用以下命令使用含配置的啟動方式:
redis-server redis.conf
配置的具體參數可以通過編輯redis.conf修改,至於如何修改,官網也有相關文檔,此處只坐簡單的示範,就不多說。
命令列運行啟動服務的命令會進入redis啟動成功的介面,我們可以在命令後面加上“&”符號讓命令在後台運行,以便更方便的操作(當然,如果你使用的帶案頭的ubuntu,你完全可以再開啟一個終端來執行後面的操作)
運行用戶端即可開始使用redis,輸入以下命令進入用戶端(同時也能檢查redis是否正常運行):
$redis-cli
如果配置了要求輸入密碼登陸的,需要使用如下命令:
redis-cli -a password //串連其他主機添加參數 -h host -p port
命令列輸入“ping”測試。
然後可以往裡面添加資料了,下面添加一個String:
set name anxpp
成功操作命令列會提示“OK”(java用戶端的set函數也是這樣返回的),接下來就擷取設定的這個值:
get name
當然,命令列會輸出剛剛set進去的值“anxpp”,這部分暫時就介紹這麼多了,如需瞭解更多,還請移步官網O(∩_∩)O~。
關閉redis:redis-cli shutdown
退出用戶端:quit 使用Java操作Redis
相關的jar包支援
以下皆為當前最新版本,點擊可下載。
commons-pool2-2.4.2.jar:Commons Pool組件提供了一整套用於實現對象池化的架構,以及若干種各具特色的對象池實現,可以有效地減少處理對象池化時的工作量,為其它重要的工作留下更多的精力和時間。
jedis-2.8.1.jar:redis用戶端支援jar包。
串連並擷取操作對象
public class RedisDemo { JedisPool pool; Jedis jedis; public RedisDemo() { pool = new JedisPool(new JedisPoolConfig(), "192.168.40.129"); jedis = pool.getResource(); // jedis.auth("password");//如果配置了密碼 } }
下面的各種方法,都會添加到上面這個RedisDemo類中,並且一些說明都會寫入注釋,所以就不會額外的解釋了。
Redis儲存初級的字串
/** * 添加一個新值,若這個key已經存在,則替換掉之前的值 * @param key 值的key * @param value 要添加的值 * @return 添加成功時會返回“OK”,否則返回錯誤資訊 */ public String setString(String key,String value){ return jedis.set(key, value); } /** * 擷取值 * @param key 要擷取的值對應的key * @return 若key存在,返回對應的值,若不存在,返回null */ public String getString(String key){ return jedis.get(key); } /** * 修改資料 * @param key 要修改的值的key * @param appendStr 要添加的內容 * @return 返回當前key對應String的長度 * 若key不存在,就新增值,若存在,就添加到已存在的String的後面 */ public long appendString(String key,String appendStr){ jedis.del(key); return