java中redis的簡單使用,Java操作redis

本文目錄一覽:

java 中redis 如何使用?

這是我之前寫的代代碼,可以參考一下:

import java.util.Set;

import com.google.gson.Gson;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

public class App {

public static void main(String[] args) {

JedisPoolConfig config = new JedisPoolConfig();

config.setMaxIdle(5);

config.setMaxWaitMillis(10000);

config.setTestOnBorrow(false);

JedisPool jedisPool = new JedisPool(config, “127.0.0.1”, 6379);

Jedis jedis = jedisPool.getResource();

jedis.flushDB();

jedis.set(“name”, “Tom”);

User user = new User(1, “Tom”, “User”);

Gson gson = new Gson();

String json = gson.toJson(user);

jedis.set(“user1”, json);

SetString keys = jedis.keys(“*”);

for (String key : keys) {

System.out.println(key);

}

}

}

如果有疑問,可以隨時追問。

怎麼在java中使用redis

public class RedisListJava { public static void main(String[] args) { //連接本地的 Redis 服務 Jedis jedis = new Jedis(“localhost”); System.out.println(“Connection to server sucessfully”); //存儲數據到列表中 jedis.lpush(“tutorial-list”, “Redis”); jedis.lpush(“tutorial-list”, “Mongodb”); jedis.lpush(“tutorial-list”, “Mysql”); // 獲取存儲的數據並輸出 ListString list = jedis.lrange(“tutorial-list”, 0 ,5); for(int i=0; ilist.size(); i++) { System.out.println(“Stored string in redis:: “+list.get(i)); } }}

怎樣使用redis緩存,java代碼

應用Redis實現數據的讀寫,同時利用隊列處理器定時將數據寫入mysql。

同時要注意避免衝突,在redis啟動時去mysql讀取所有表鍵值存入redis中,往redis寫數據時,對redis主鍵自增並進行讀取,若mysql更新失敗,則需要及時清除緩存及同步redis主鍵。

這樣處理,主要是實時讀寫redis,而mysql數據則通過隊列非同步處理,緩解mysql壓力,不過這種方法應用場景主要基於高並發,而且redis的高可用集群架構相對更複雜,一般不是很推薦。

java操作redis有哪些方法

電腦安裝Redis,然後通過JRedis(jar包)下的JRedis redis = new JRedis(address,port);就可以操作了,比連接資料庫還簡單,如果是windows的話 建議裝虛擬機用linux安裝redis,其他的只要你懂redis,用java操作redis太簡單了

redis client使用小結

本文記錄了使用redis client的基本配置和連接超限的問題

java端的redis client使用的是jedis,他的連接池實現是基於Apache Commons Pool 2,配置也參考的GenericObjectPoolConfig,分別是minIdle,maxIdle,maxTotal,其中maxTotal包含了活躍和非活躍的連接總數

另外timeout是在Jedis的構造函數里指定的,他同時指定了connectionTimeout(最大連接時間)和soTimeout(最大響應時間 )

客戶端配置就上面幾個,用起來還是挺簡單的,但是用的過程中還是會遇到一些問題,比如ERR max number of clients reached,有可能會是以下幾個原因:

redis server最大連接數的配置由maxclients決定,2.6以後的版本默認值是10000,如果設置的值超過了操作系統的最大值限制,則會在啟動的時候給出提示

一般情況下,超過10000的最大連接數是使用上的問題。首先redis服務端默認的timout配置的是0,即不會關閉連接,即便這個連接已經空閑很久,這時候如果客戶端在重啟前沒有關閉連接或者說中間有防火牆之類的斷開了連接,redis 服務端將會永久保留這些連接,這時候只要配置timeout即可

除了timeout也還可以通過keepalive配置來解決,比如如果你的redis角色是sentinel,那麼redis里的timeout的配置是不生效的。

這裡的keepalive指的是TCP協議層的配置,他有三個參數影響:

連接超時公式為:

這個時間還是挺久的,redis服務端在3.2版本已經以後,默認設置了tcp_keepalive_time為300秒(以前的版本默認為0,也就是不啟用)

配置上這個參數之後,對於一些客戶端沒有正常關閉的場景也能及時的關閉

另外說到客戶端的正確配置,如果是使用Spring的話,只要配置下bean的destroy-method,在這裡關閉連接池即可,如果沒有用Spring,則要自己註冊一個ShutdownHook

1. redis報-ERR max number of clients reached錯誤

2. Custom Configuration of TCP Socket Keep-Alive Timeouts

3. Redis Clients Handling

4. Sentinel最大連接數

redis java 有什麼用

Java連接redis的使用示例

Redis是開源的key-value存儲工具,redis通常用來存儲結構化的數據,因為redis的key可以包含String、hash、listset和sorted list。

Redisclient支持多種語言,包括:c、C++、C#、php、java、python、go等語言,根據自己的開發語言,選擇合適的redis client版本類型即可。我是使用java語言開發的,針對java語言,redis client也提供了多種客戶端支持,按照推薦類型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前兩種類型是比較推薦的,我們採用了Redisson類型版本作為redisclient的使用。

Redisson版的redis可發工程搭建

1. 新建maven工程

2. 在pom.xml文件的dependencies節點下增加如下內容:

dependency

groupIdorg.redisson/groupId

artifactIdredisson/artifactId

version1.0.2/version

/dependency

dependency

groupIdorg.slf4j/groupId

artifactIdslf4j-log4j12/artifactId

version1.7.7/version

/dependency

3. 保存pom.xml後,等eclispe工程構建完成後即可進行開發了

開發示例

下面是演示連接redis伺服器、保存讀取concurrentMap對象、保存讀取set對象和保存讀取Queue對象的示例代碼,代碼比較簡單,這裡就不再詳細講解了,代碼如下:

[java] view plaincopy

package com.my.test.redis;

import java.util.Queue;

import java.util.Set;

import java.util.concurrent.ConcurrentMap;

import org.redisson.Config;

import org.redisson.Redisson;

public class RedisExample {

/**

* @param args

*/

public static void main(String[] args) {

// 1.初始化

Config config = new Config();

config.setConnectionPoolSize(10);

config.addAddress(“127.0.0.1:6379”);

Redisson redisson = Redisson.create(config);

System.out.println(“reids連接成功…”);

// 2.測試concurrentMap,put方法的時候就會同步到redis中

ConcurrentMapString, Object map = redisson.getMap(“FirstMap”);

map.put(“wuguowei”, “男”);

map.put(“zhangsan”, “nan”);

map.put(“lisi”, “女”);

ConcurrentMap resultMap = redisson.getMap(“FirstMap”);

System.out.println(“resultMap==” + resultMap.keySet());

// 2.測試Set集合

Set mySet = redisson.getSet(“MySet”);

mySet.add(“wuguowei”);

mySet.add(“lisi”);

Set resultSet = redisson.getSet(“MySet”);

System.out.println(“resultSet===” + resultSet.size());

//3.測試Queue隊列

Queue myQueue = redisson.getQueue(“FirstQueue”);

myQueue.add(“wuguowei”);

myQueue.add(“lili”);

myQueue.add(“zhangsan”);

myQueue.peek();

myQueue.poll();

Queue resultQueue=redisson.getQueue(“FirstQueue”);

System.out.println(“resultQueue===”+resultQueue);

// 關閉連接

redisson.shutdown();

}

}

原創文章,作者:ISRW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142375.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ISRW的頭像ISRW
上一篇 2024-10-11 11:41
下一篇 2024-10-11 11:41

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29

發表回復

登錄後才能評論