Redis入門:下載安裝篇(安裝版)
由於筆者是初學者,並且辦公電腦是公司的windows,所以筆者花了大量的時間去搜索redis的windows版本。
Redis官方原版只支援linux,筆者花時間從GitHub上找到了微軟提供的windows版,結果由於網路問題,一直提示下載失敗。經歷了惆悵的百度時間,發現Redis資源基本被壟斷成了獲利工具。這種行為是讓筆者不能容忍的。明明只是個搬運工,非得把自己打造成物流公司。
於是筆者繼續努力,翻山越嶺地下載到了兩篇資源:
兩篇資源同時也免費共享到了百度雲盤裡:
連結: https://pan.baidu.com/s/1jPnOgs91jLiD7FxNwqOx-g 密碼: qrdq
下面就是繼續Redis的安裝學習
筆者先發安裝版的使用方法,解壓版的有空再發。
首先是選擇安裝路徑和勾選把redis新增到環境變數中
第二部選擇我們的安裝埠,勾選是將埠新增到防火牆規則中,一般個人開發可以不勾選。
第三步設定最大記憶體限制,筆者由於公司電腦記憶體太低,所以就配置了個500兆。
隨後安裝完成進入使用階段。
-
配置配置檔案:安裝目錄下的redis.windows.conf,在修改配置檔案的時候,屬性一定要頂格,不能留有空白。否則會報錯:Invalid argument during startup: unknown conf file parameter :
-
bind 127.0.0.1 port 6369 requirepass redispassword
-
-
啟動服務:redis-server redis.windows.conf
筆者建立的是Marven專案,所以在呼叫外部依賴jar包的時候直接呼叫的pom.xml的dependency
<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-pool/commons-pool --> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency>
如果讀者沒有使用maven做包管理,可以直接訪問上方的連結,下載最新的jar包。
兩個jar包
jedis.jar用於管理和連結Redis
commons-pool.jar使用者管理Redis的執行緒池
使用雙驗證單例模式實現Jedis的管理 - 由於埠衝突,Redis的埠被調整為6369。
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* redis的連結工具
* @author yz
*
*/
public class RedisUtil {
private static JedisPool pool = null;
/**
* 單例模式的雙鎖實現
* @return
*/
private static final JedisPool getPoll() {
if(pool==null) {
synchronized(RedisUtil.class){
if(pool==null) {
JedisPoolConfig config = new JedisPoolConfig();
//最大活動物件數
config.setMaxTotal(500);
//最大能夠保持idel狀態的物件數
config.setMaxIdle(100);
//最小能夠保持idel狀態的物件數
config.setMinIdle(10);
//表示當borrow(引入)一個jedis例項時,最大的等待時間,如果超過等待時間,則直接丟擲JedisConnectionException;
config.setMaxWaitMillis(1000 * 1);
//在borrow一個jedis例項時,是否提前進行validate操作;如果為true,則得到的jedis例項均是可用的;
config.setTestOnBorrow(true);
//“空閒連結”檢測執行緒,檢測的週期,毫秒數。如果為負值,表示不執行“檢測執行緒”。預設為-1.
config.setTimeBetweenEvictionRunsMillis(1000*60);
//對於“空閒連結”檢測執行緒而言,每次檢測的連結資源的個數。預設為3.
config.setNumTestsPerEvictionRun(50);
pool = new JedisPool(config, "127.0.0.1", 6369,0,"redispassword");
}
}
}
return pool;
}
/**
* 獲取redis的操作器Jedis
* @return
*/
public static final Jedis getInstance() {
if(pool==null)getPoll();
return pool.getResource();
}
/**
* 釋放資源
* @param jedis
*/
public static final void release(Jedis jedis) {
jedis.close();
}
}
程式碼呼叫:
Jedis jedis=RedisUtil.getInstance();
jedis.set("testdemo", "張三是個老實人");
LOG.info(jedis.get("testdemo"));