Redis連線池配置以及存取資料
配置連線池:
package demo;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class RedisUtils {
//Redis伺服器IP
private static String ADDR = "127.0.0.1";
//Redis的埠號
private static int PORT = 6379;
//可用連線例項的最大數目,預設值為8;
//如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis例項,則此時pool的狀態為exhausted(耗盡)。
private static int MAX_ACTIVE = 1024;
//控制一個pool最多有多少個狀態為idle(空閒的)的jedis例項,預設值也是8。
private static int MAX_IDLE = 200;
//等待可用連線的最大時間,單位毫秒,預設值為-1,表示永不超時。如果超過等待時間,則直接丟擲JedisConnectionException;
private static int MAX_WAIT = 10000;
//在borrow一個jedis例項時,是否提前進行validate操作;如果為true,則得到的jedis例項均是可用的;
private static boolean TEST_ON_BORROW = true;
private static JedisPool jedisPool = null;
/**
* 初始化Redis連線池
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
jedisPool = new JedisPool(config, ADDR, PORT);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 獲取Jedis例項
* @return
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 釋放jedis資源
* @param jedis
*/
public static void returnResource(final Jedis jedis) {
if (jedis != null) {
jedisPool.returnResourceObject(jedis);
}
}
}
讀取資料工具類:
package demo;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import redis.clients.jedis.Jedis;
public class ReidsUriTest {
//存list
public void saveList(List<Object> list) {
Jedis jedis = null;
jedis = RedisUtils.getJedis();
int size = list.size();
if (size > 0) {
for (int i = 0; i < size; i++) {
Object obj = list.get(i);
String objData = JSON.toJSONString(obj);
jedis.rpush("article", objData);
}
}
}
//讀取list
public List<String> getList(String key) {
Jedis jedis = null;
jedis = RedisUtils.getJedis();
List<String> list = jedis.lrange(key, 0, -1);
return list;
}
//測試
public static void main(String[] args) {
ReidsUriTest r = new ReidsUriTest();
List<Object> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Article a = new Article();
a.setId("id-" + i);
a.setTitle("title-" + i);
list.add(a);
}
r.saveList(list);
System.out.println("------------");
List<String> l = r.getList("article");
}
}
Article自行編寫。
相關推薦
Redis連線池配置以及存取資料
配置連線池: package demo; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool;
java專案使用redis / 連線池配置
1. pom <dependency> <groupId>
spring Boot redis連線池配置,Spring Session配置
1.POM配置 <!-- redis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifac
tomcat-dbcp資料庫連線池配置以及使用時候的一些坑
一、資料庫連線池 開發的時候經常會需要對資料庫進行一些操作,比如說常見的增刪改查之類的,當資料量小的時候,可以直接進行操作,但是當資料量增多的時候,每一次連線以及釋放資料庫都會耗費一定的時間,這個時候,可以採用資料庫連線池來保持資料庫的連結,減少連線資料庫對程式帶來的開銷,
spring feign http客戶端連線池配置以及spring zuul http客戶端連線池配置解析
背景 一般在生產專案中, Feign會使用HTTP連線池而不是預設的Java原生HTTP單路由單長連線;而是使用連線池。Zuul直接使用Ribbon的Http連線池;Feign和閘道器Zuul的RPC呼叫,實際上都是HTTP請求。HTTP請求,如果不配置好HT
spring中redis連線池版單節點使用(xml配置及非xml配置)
1.依賴 <!--引入reids--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId
SpringBoot配置Redis連線池
首先是redis各個引數的配置,在 application-dev.properties中配置如下: #redis配置 redis.server.host=192.168.50.162 redis.se
Tomcat連線池,以及 Webservice配置,以及log4j日誌輸出
用java寫的webservice,建立資料庫連線的時候,因為webservice介面要供很多使用者使用,這時如果把資料庫連線語句寫在使用者呼叫的我方的方法裡面,在方法裡面用完再關閉,也可以。但是用tomcat連線池,一開始就申請25個連線放著,最多50個(這個25和50都
redis提示Could not get a resource from the pool(jedis連線池配置)
起初在JedisPool中配置了50個活動連線,但是程式還是經常報錯:Could not get a resource from the pool 連線池剛開始是這樣配置的: JedisPoolConfig config = new JedisPoolConfig(
golang中redis連線池
package main import ( "github.com/garyburd/redigo/redis" "fmt" ) var pool *redis.Pool func init() { pool = &redis.Pool{ MaxIdle:16,
4、Redis連線池的構建與測試
首先我們在我們的專案中新建一個 RedisPool類 程式碼如下: package com.mmall.common; import com.mmall.util.PropertiesUtil; import redis.clients.jedis.Jedis; import re
weblogic伺服器連線池配置細節
進入某個連線池配置頁,進入“連線“頁,點選高階選項的”show“顯示高階選項。 指定 "測試頻率" 並啟用 "測試保留的連線"、"測試建立的連線" 和 "測試釋放的連線"。 測試頻率(Test Frequency):
Redis連線池
當需要很多連線的時候,一般都是通過使用連線池獲取連線,首先我們先自定義一個簡單(沒考慮高併發等複雜情況)的連線池,及進行相應設定 package com.redis.test;import redis.clients.jedis.Jedis;import redis.clients.jedis.J
DBCP連線池配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdb
使用資料庫連線池配置資料來源
Tomcat伺服器的context.xml檔案中Context元素下增加Resource元素 oracle <Resource name="jdbc/hrs" auth="Container" type="javax.sql.DataSource" maxActive="100" ma
Druid連線池-配置_DruidDataSource參考配置
【更多參考】https://www.cnblogs.com/niejunlei/p/5977895.html 配置_DruidDataSource參考配置 以下是一個參考的連線池配置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Java Redis(三):建立Redis連線池
Redis 連線池 public class RedisPool { private static JedisPool pool;//jedis連線池 private static Integer maxTotal = ; //最大連線數 private st
1112_maven專案使用Druid連線池配置步驟和注意事項[mysql資料庫]
maven專案使用Druid連線池配置步驟和注意事項[mysql資料庫] 2018年06月13日 17:09:25 個人分類: java 注:這兩天搭建專案時,使用Druid連線池入了不少坑;以此記錄; MySQL Server 5.7.21 + mysql-connector-j
Java的Redis連線池程式碼
其實這個是引用自網友http://blog.csdn.net/tuposky/article/details/45340183,有2個版本,差別就是ReentrantLock和synchronized。另外原作者使用了斷言,我覺得這個還是不用為好。 ReentrantLock版 import
阿里Druid資料庫連線池配置解釋
#阿里資料庫連線池Druid配置 # 初始化連線大小 spring.datasource.druid.initial-size=20 # 最小空閒連線數 spring.datasource.druid.minIdle=20 # 最大連線數 spring.datasource.druid.maxAct