Linux下使用Redis教程(一)


Linux下使用Redis教程(一)或者看一下https://www.imooc.com/article/34559個地址

2018-05-24 12:56:15 大道之簡 閱讀數 2338更多

分類專欄: Linux學習 Redis 軟件工具

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/HcJsJqJSSM/article/details/80432706

之前安裝過也使用過的的Redis的,總結一下安裝的過程吧。(其實和Nginx的的是一樣的安裝方法,C編寫,編譯安裝,稍微麻煩一下,但是速度快。對比的Tomcat的(JAVA))

環境搭建:CentesOS 7,redis-3.0.0.tar.gz,SecureCRT。RedisClient客戶端. 

首先將下載的安裝包上傳的的Linux下,獲取官網的的的Redis的對應版本的鏈接,使用了wget的命令都可以的。

由於redis的的是由Ç語言開發的,所以要安裝一下GCC的編譯環境。(使用Yum在線安裝)

yum install -y gcc

檢查一下是否安裝成功了.

rpm -qa |grep gcc

然后解壓到指定的目錄(這里沒有指定解壓目錄,就是當前所在目錄)

wget http://download.redis.io/releases/redis-3.0.0.tar.gz

tar -zxvf redis-3.0.0.tar.gz

 

 

 

 

 

進入到指定剛才解壓的目錄里面

cd redis-3.0.0

然后就是編譯了

使用 make命令.

make

 

 

 

 

 

 

 

 

接下來將redis的的安裝到指定的目錄里面(下面的那個redis的的不需要提前創建的)

使用PREFIX = / usr / local / src / redis安裝至指定目錄里面.

make install PREFIX=/usr/local/src/redis

 

 

 

 

 

來到在/ usr / local / src/ redis的目錄下

 

 

 

 

 

進入倉目錄里面發現沒有redis.conf的配置文件。

Redis的的-3.0.0的目錄下的redis.conf復制到剛才的倉目錄下的。

cp redis.conf / usr / local / src / redis / bin

cd / usr / local / src / redis / bin

 

 

 

 

 

接下來就是啟動的Redis的了的.Redis的啟動的有前台啟動和后台啟動的兩種方式的。

首先介紹一下前台啟動:

cd bin

./redis-server

 

 

 

 

 

前台啟動的弊端:這個窗口不能關閉的如果關閉了Redis的的服務就關閉了的。

使用后端啟動的方式。先將前台啟動的方式給關閉了的。

./redis-cli -p 6379(端口號,不是進程號)shutdown

修改redis.conf下的配置文件

vim redis.conf

 

 

 

 

 

后台啟動:BIN目錄下。

./redis-server ./redis.conf

 

 

 

 

 

查看啟動進程:(掛載配置文件)

ps -ef | grep -i redis

 

 

 

 

 

至此Redis的的的啟動就完成了的。

如果要使用遠程連接,那就開放端口6379。

firewall-cmd --zone = public --add-port = 6379 / tcp --permanent

 

 

 

 

 

Redis的的的倉目錄下的幾個文件介紹

 

 

 

 

 

Redis的的基准測試:性能測試工具。

Redis的的檢查,AOF:檢查修復AOF文件

Redis的的檢查轉儲:檢查快照持久文件

Redis的的-CLI:Redis的的的客戶端

Redis的的服務器:redis的的的服務器啟動命令.

上面是完成的Redis的服務啟動的。下面就啟動客戶端連接服務器的。

cd bin

 

 

 

 

 

使用一下:(設置值和獲取值)

 

 

 

 

 

退出客戶端連接的方式:(exit)

 

 

 

 

 

遠程客戶端連接:(redis設置登錄密碼)

vim redis.conf

 

 

 

 

 

 

 

 

 

 

 

 

 

注意連接遠程Redis:(例如連接阿里雲,華為雲上的Redis)

①:修改Redis.conf(關閉安全模式)

 

 

 

 

 

②:注釋掉默認的127.0.0.1的那個是默認本地可以訪問的,修改為0.0.0.0,確保所有ip可以訪問的.

 

 

 

 

 

③:  firewall-cmd開啟6379端口.等會雲服務平台,修改安全組規則.

 firewall-cmd --zone=public --add-port=6379/tcp --permanen(后面的參數是永久生效的)

 firewall-cmd --reload

 

 

 

 

 

 

④:添加一個連接密碼 

 

 

 

 

 

二:Windows下安裝Redis.

 

 

官網上對於Redis For Windows的安裝沒看到相關的介紹.

GitHub上是提供Redis的Windows的版本的.鏈接.

 

下載解壓至本地盤符下.

 

雙擊redis-server.exe啟動服務端.redis-cli.exe啟動客戶端.但是這個時候啟動的時候,Redis服務端閃退.

解決方法:

      ①:在cmd下運行而不是雙擊redis-server.exe:

     

 

     ②:或者是設置一下占用的內存.

             redis-server.exe redis.windows.conf --maxmemory 200m  

            修改配置文件redis.windows.conf :maxmemory 209715200(單位字節).

            現在在cmd下運行.

   

 

     啟動客戶端. 進行基本命令的操作使用.

    

 

   三: JavaAPI測試Redis的讀寫性能.

    3.1 首先是導入兩個jar包.

   

 

  3.2 測試Redis的10w數據寫讀耗費時間.使用了流水線技術.批量處理.本地測試.

  1. import java.time.Duration;
  2. import java.time.Instant;
  3. import java.util.List;
  4. import redis.clients.jedis.Jedis;
  5. import redis.clients.jedis.JedisPool;
  6. import redis.clients.jedis.JedisPoolConfig;
  7. import redis.clients.jedis.Pipeline;
  8. /**
  9. * title: RedisDemo
  10. * author:
  11. * date:
  12. * description:測試Redsi的10萬數據寫讀耗費時間
  13. * 開啟流水線測試信息.
  14. */
  15. public class RedisDemo {
  16. public static void main(String[] args) {
  17. JedisPoolConfig poolConfig=new JedisPoolConfig();
  18. // 最大空閑連接數
  19. poolConfig.setMaxIdle(50);
  20. // 最大連接數
  21. poolConfig.setMaxTotal(100);
  22. // 最大等待毫秒數
  23. poolConfig.setMaxWaitMillis(20000);
  24. // 使用配置連接池
  25. JedisPool pool=new JedisPool(poolConfig, "localhost", 6379);
  26. // 獲取Redis連接
  27. Jedis jedis=pool.getResource();
  28. // 配置客戶端登錄密碼
  29. jedis.auth("123456");
  30. Instant start=Instant.now();
  31. // 開啟流水線
  32. Pipeline pipeline=jedis.pipelined();
  33. // 測試10萬字符串數據的寫入和讀取
  34. for(int i=1;i<=100000;i++){
  35. // 設置key
  36. pipeline.set("pipe-key-"+i, i+"");
  37. // 讀取key
  38. pipeline.get("pipe-key-"+i);
  39. }
  40. // 返回結果.將執行過的命令以list集合返回結果.
  41. List<Object> result=pipeline.syncAndReturnAll();
  42. // 關閉連接
  43. jedis.close();
  44. pool.close();
  45. Instant end=Instant.now();
  46. System.out.println("一共運行了"+result.size()+"個命令");
  47. System.out.println("計算耗時:"+Duration.between(start, end).toMillis()+"毫秒");
  48. }
  49. }

運行結果:需要時間平均不到1s.

 

查看Redis的key數目.是一共10w條數據.

 

   3.3 測試Redis的1秒寫入.使用了流水線技術批量處理,而不是一條一條的發送命令.本地測試.PC內存8G

  1. import java.time.Duration;
  2. import java.time.Instant;
  3. import redis.clients.jedis.Jedis;
  4. import redis.clients.jedis.JedisPool;
  5. import redis.clients.jedis.JedisPoolConfig;
  6. import redis.clients.jedis.Pipeline;
  7. /**
  8. * title: RedisDemo
  9. * @author:
  10. * date:
  11. * description:測試Redsi的每秒讀寫
  12. * 之前是一條一條命令測試的.
  13. * 開啟流水線,批量執行.
  14. */
  15. public class RedisDemo {
  16. public static void main(String[] args) {
  17. JedisPoolConfig poolConfig=new JedisPoolConfig();
  18. // 最大空閑連接數
  19. poolConfig.setMaxIdle(50);
  20. // 最大連接數
  21. poolConfig.setMaxTotal(100);
  22. // 最大等待毫秒數
  23. poolConfig.setMaxWaitMillis(20000);
  24. // 使用配置連接池
  25. JedisPool pool=new JedisPool(poolConfig, "localhost", 6379);
  26. // 獲取Redis連接
  27. Jedis jedis=pool.getResource();
  28. // 配置客戶端登錄密碼
  29. jedis.auth("123456");
  30. Instant start=Instant.now();
  31. // 開啟流水線
  32. Pipeline pipeline=jedis.pipelined();
  33. int i=0;
  34. // 測試10萬字符串數據的寫入和讀取
  35. while(true){
  36. // 設置key
  37. Instant end=Instant.now();
  38. if(Duration.between(start, end).toMillis()>1000){
  39. break;
  40. }
  41. i++;
  42. pipeline.set("pipe-key-sed-"+i, i+"");
  43. }
  44. // 關閉連接
  45. jedis.close();
  46. pool.close();
  47. System.out.println("redis每秒寫入"+i+"次");
  48. }
  49. }

運行結果:平均每秒20W+.

 

 

此時,無論是程序中使用Jedis連接還是RedisClient連接都是可以的.  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM