redis的安裝和測試


     redis一直都是調用別人部署好的,近日想要自己從靈開始搭建一次。其中也生出不少枝節,與各位猿友共同分享,望少走些彎路!

     1.提前准備的資源

      redis安裝包(本人上傳到csdn不需積分即可下載):

      http://download.csdn.net/detail/u012580998/9818185

     2.將安裝包解壓到 /opt/redis下(目錄自定義,但是請容易記一些),然后進入到該目錄

     

 

     3.編譯redis

      執行命令如下:

     (編譯)

     make 

     (進入src)

  cd src

    (安裝,以及安裝路徑)

  make install PREFIX=/usr/local/redis

 

     4.將配置文件移動到/usr/local/redis目錄

     

     5.啟動redis服務

     執行

 

     /usr/local/redis/bin/redis-server /usr/local/redis/redis-conf

 

     

 

    6.修改配置文件

    編輯redis.conf

    將daemonize的值改為yes  (這是后台運行)

 

    bind 127.0.0.1    (只能本機訪問)

    改為

    bind 0.0.0.0    (非本機亦可訪問(或者可以綁定指定IP))

 

 

7.注意事項,個人安裝測試過程中遇到問題以及解決方案

    7.1編譯過程中make 報錯

  

     解決辦法:yum install tcl  (也就是yum安裝tcl)

 

    7.2  遠程訪問失敗

     解決方案便是第六步,將bind 127.0.0.1   改成了 bind 0.0.0.0

     否則redis只能本地訪問

 

     7.3 redis安全模式訪問

      測試程序報錯為:

     DENIED Redis is running protected mode because protected mode is enabled,
     no bind address was specified, no authentication password is requested to clients.
     In this mode connections are only accepted from the loopback interface.

 

      需要給redis配置密碼

      啟動redis客戶端

      執行  redis-cli指令

      然后執行

      config set requirepass 123456(密碼)

      

 

8.附上測試代碼(請新建Java項目,並引入jedis的jar包(百度一下就可以找到了))

import redis.clients.jedis.Jedis;import redis.clients.jedis.exceptions.JedisConnectionException;

public class RedisTest {  
  
    private Jedis jedis = null;  
    private String key1 = "key1";  
    private String key2 = "key2";  
  
    public RedisTest() {  
        jedis = new Jedis("127.0.0.1");  // redis的IP地址
        jedis.auth("redis");   // redis密碼
    }  
  
    public static void main(String[] args) {  
        RedisTest redisTest = new RedisTest();  
        redisTest.isReachable();   // redis是否訪問成功 返回結果true/false
        redisTest.testData();    // 數據測試
        redisTest.delData();     // 刪除數據
        redisTest.testExpire();  
    }  
  
    public boolean isReachable() {  
        boolean isReached = true;  
        try {  
            jedis.connect();  
            jedis.ping();  
            // jedis.quit();  
        } catch (JedisConnectionException e) {  
            e.printStackTrace();  
            isReached = false;  
        }  
  
        System.out  
                .println("The current Redis Server is Reachable:" + isReached);  
        return isReached;  
    }  
  
    public void testData() {  
        jedis.set("key1", "data1");  
        jedis.set("maxm", "MMM");
        System.out.println(jedis.get("maxm"));
        System.out.println("Check status of data existing:"  
                + jedis.exists(key1));  
        System.out.println("Get Data key1:" + jedis.get("key1"));  
  
        long s = jedis.sadd(key2, "data2");  
        System.out.println("Add key2 Data:" + jedis.scard(key2)  
                + " with status " + s);  
    }  
  
    public void delData() {  
        long count = jedis.del(key1);  
  
        System.out.println("Get Data Key1 after it is deleted:"  
                + jedis.get(key1));  
    }  
  
    public void testExpire() {  
        long count = jedis.expire(key2, 5);  
  
        try {  
            Thread.currentThread().sleep(6000);  
        } catch (InterruptedException e) {             
            e.printStackTrace();  
        }  
  
        if (jedis.exists(key2)) {  
            System.out  
                    .println("Get Key2 in Expire Action:" + jedis.scard(key2));  
        } else {  
            System.out.println("Key2 is expired with value:"  
                    + jedis.scard(key2));  
        }  
    }  
  
}  

 

 

 

 

 

 

       

     

     

     


免責聲明!

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



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