Redis學習(五)Java使用Redis

簡單的工程

RedisJavaDemo使用maven來構建項目,pom配置

 <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>

代碼如下:

package com.sima.redis;

import redis.clients.jedis.Jedis;

import java.util.Iterator;
import java.util.Set;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        //連接本地的 Redis 服務
        Jedis jedis = new Jedis("225.100.212.123");
        //設置密碼
        jedis.auth("123123");
        //查看服務是否運行
        System.out.println("服務正在運行: "+jedis.ping());
        //設置 redis 字符串數據
        jedis.set("foo", "Hello World!");
        // 獲取存儲的數據并輸出
       System.out.println("redis 存儲的字符串為: "+ jedis.get("foo"));
    }
}

運行結果

補充
  • List存儲
       //存儲數據到列表中
        jedis.lpush("mylist", "maple1");
        jedis.lpush("mylist", "maple2");
        jedis.lpush("mylist", "maple3");
        // 獲取存儲的數據并輸出
        List<String> list = jedis.lrange("site-list", 0 ,2);
        for(int i=0; i<list.size(); i++) {
            System.out.println("列表項為: "+list.get(i));
        }
  • 獲取所有的key
// 獲取數據并輸出
        Set<String> keys = jedis.keys("*"); 
        Iterator<String> it=keys.iterator() ;   
        while(it.hasNext()){   
            String key = it.next();   
            System.out.println(key);   
        }

Redis連接池

package com.sima.redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by maple on 2017-08-10.
 */
public class RedisUtils {
    //Redis服務器IP
    private static String ADDR = "225.100.212.123";
    //Redis的端口號
    private static int PORT = 6379;
    //訪問密碼
    private static String AUTH = "123123";
    //可用連接實例的最大數目,默認值為8;
    //如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis實例,則此時pool的狀態為exhausted(耗盡)。
    private static int MAX_TOTAL = 1024;
    //控制一個pool最多有多少個狀態為idle(空閑的)的jedis實例,默認值也是8。
    private static int MAX_IDLE = 200;
    //等待可用連接的最大時間,單位毫秒,默認值為-1,表示永不超時。如果超過等待時間,則直接拋出JedisConnectionException;
    private static int MAX_WAIT = 10000;
    private static int TIMEOUT = 10000;
    //在borrow一個jedis實例時,是否提前進行validate操作;如果為true,則得到的jedis實例均是可用的;
    private static boolean TEST_ON_BORROW = true;
    private static JedisPool jedisPool = null;

    /**
     * 初始化Redis連接池
     */
    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(MAX_TOTAL);
        config.setMaxIdle(MAX_IDLE);
        config.setMaxWaitMillis(MAX_WAIT);
        config.setTestOnBorrow(TEST_ON_BORROW);
        jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
    }
    /**
     * 獲取Jedis實例
     */
    public synchronized static Jedis getJedis(){
        if (jedisPool != null){
            Jedis jedis = jedisPool.getResource();
            return jedis;
        }else {
            return null;
        }
    }
    /**
     * 釋放Jedis資源
     */
    public static void close(Jedis jedis){
        if (jedis != null){
            jedis.close();
        }
    }
}
package com.sima.redis;

import redis.clients.jedis.Jedis;

/**
 * Created by maple on 2017-08-10.
 */
public class AppByUtil {
    public static void main( String[] args ){

        Jedis jedis = RedisUtils.getJedis();
        System.out.println("redis 存儲的字符串為: " + jedis.get("foo"));
        RedisUtils.close(jedis);

    }
}

注意點

在實際項目運用中,發下Jedis的方法調用失敗后,在控制臺并沒有報異常錯誤,所有需要代碼try-catch一下。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,971評論 6 342
  • 1 Redis介紹1.1 什么是NoSql為了解決高并發、高可擴展、高可用、大數據存儲問題而產生的數據庫解決方...
    克魯德李閱讀 5,371評論 0 36
  • 巴爾扎克的小說《歐也妮葛朗臺》是一部以吝嗇鬼葛朗臺的家庭生活和剝削活動為主線,歐也妮的愛情和婚姻悲劇為中心事件的小...
    EN多閱讀 722評論 0 1
  • 當造物主拉下天空和白云的帆布,漫長的黑夜就開始了。 而在這片黑夜里,所有的人類都會撕下所謂的假面。至少,我是這樣想...
    伏羲琴曲風閱讀 408評論 0 5