天天看點

java redis 緩存方案_緩存方案之Redis

Redis簡介

Redis是Remote Dictionary Server(Redis) 的縮寫,或許光聽名字你就能猜出它大概是做什麼的。不錯,它是一個由Salvatore Sanfilippo編寫的key-value存儲系統,是一個使用ANSI C語言編寫、遵守BSD協定、支援網絡、可基于記憶體亦可持久化的日志型的Key-Value資料庫,并提供多種語言的API。在很多地方,Redis也被業内人士稱為資料結構伺服器,因為它允許緩存的值(value)可以是字元串(string)、哈希(hash)、清單(list)、集合(set)和有序集合(sorted set)等類型。此外,Redis還支援master-slave方式的資料備份,所有的這一切都讓Redis在同類型的産品中脫穎而出。

Redis的優勢

性能極高 – 在我的Mac Book Pro上執行Redis的基準測試(benchmark),每秒能夠處理寫操作數都在80000以上。部分測試結果如下圖所示:

java redis 緩存方案_緩存方案之Redis

豐富的資料類型 – Redis支援Strings, Lists, Hashes, Sets 及Ordered Sets資料類型操作。

原子 – Redis的所有操作都是原子性的,同時Redis還支援對幾個操作全并後的原子性執行。

豐富的特性 – Redis還支援publish/subscribe,通知,key過期等豐富的特性。

Redis的安裝和配置

如何在Windows和Linux系統上安裝Redis在W3CSchool網站已經有詳細的講解了,我分享一下在Mac上安裝Redis的過程,跟其他系統基本一緻。首先從Redis的官方網站下載下傳Redis的壓縮檔案,解壓之後有一個src目錄。由于Mac系統是在Unix系統(FreeBSD)基礎上發展起來的,是以可以直接使用make指令對src目錄下的源代碼進行建構(Makefile肯定是已經有的,不懂make的作用和原理沒關系,照做就可以了),建構完成後src目錄下會生成一個redis-server檔案,運作它就可以啟動伺服器,如下圖所示。

java redis 緩存方案_緩存方案之Redis

接下來可以啟動一個用戶端程式來做一些簡單的實驗。還是在剛才的src目錄下有一個redis-cli檔案,運作它就可以啟動一個用戶端,如下圖所示。

java redis 緩存方案_緩存方案之Redis

關于Redis的資料類型、指令、事務、釋出/訂閱、資料備份與恢複、配置等内容仍然可以參考上面提到的W3CSchool的網站。

在Java項目中使用Redis

Jedis是Redis官方首選的Java用戶端開發包,點選連結可以獲得相關的API文檔。下面給出一段簡單的測試代碼。

import redis.clients.jedis.Jedis;

class RedisTest {

public static void main(String[] args) {

Jedis jedis = new Jedis("localhost"); // 連接配接到Redis伺服器

// jedis.auth("123456"); // 輸入密碼進行驗證

jedis.set("greeting", "Hello, world!"); // 将字元串緩存到Redis伺服器

System.out.println(jedis.get("greeting")); // 從Redis緩存中擷取資料

}

}

Redis和Memcached的比較

Redis使用最佳方式是全部資料in-memory。

Redis更多場景是作為Memcached的替代者來使用。

當需要除key/value之外的更多資料類型支援時,Redis更合适。

當存儲的資料不能被剔除時,使用Redis更合适。

Redis可以使用指令直接對緩存的資料進行運算。