導航:首頁 > 編程語言 > redisclientjava

redisclientjava

發布時間:2023-06-07 20:35:20

『壹』 為什麼redis在java是同步緩存,而在nodejs是非同步緩存

我看了一下node redis代碼,來client.get直接返回的結果是!自client.shou_buffer。而且對於非同步操作的js,這個值肯定是它向redis發送請求之前就被返回了的。

var returned = client.get(key,function(err,repy){
value = repy;
console.log(『value is 』,value);
client.quit();
})
console.log(『returned is 』,returned)
你可以看看哪個被先列印出來。 而且不要在返回數據之後就quit,因為你還要接著存取數據,下次難道還要用client手動連接上嗎?這不是php。

『貳』 java代碼怎麼正則刪除redis的數據

java代碼怎麼正則刪除redis的數據,即批量刪除符合一定條件的redis數據,現在介紹批量刪除已某些字元開頭的redis數據:

在Java中連接Redis,並進行操作,首先得載入以JAR包形式存在的Java中的Redis Client,我們這里選擇Jedis。以下是使用Jedis的具體步驟:

  1. 在Maven項目中,在pom.xml中增加如下語句(即載入Jedis jar包):

    <dependency>

    <groupId>redis.clients</groupId>

    <artifactId>jedis</artifactId>

    <version>2.7.2</version>

    <type>jar</type>

    </dependency>

    如不是Maven工程,就自行下載Jedis jar包引用即可。

  2. 在載入Jedis JAR包之後,可以直接使用新建一個Jedis實例的方法,來建立一個到Redis的連接,並進行操作。不過跟Mysql一樣,每次操作的時候,都建立連接,很耗費性能。解決方法就是從一個連接池中取出連接對象,用完還回去。使用連接池的方案還能解決很多同步性問題。

    在Jedis中,管理Redis連接的類是JedisPool

    package com.atzy


    importredis.clients.jedis.Jedis;

    importredis.clients.jedis.JedisPool;

    publicclassRedisHelper{

    publicstaticvoidmain(String[]args){

    JedisPooljedisPool=newJedisPool("localhost",6379);

    Jedisjedis=null;

    try{

    jedis=jedisPool.getResource();

    Stringpre_str="ab";

    Set<String>set=jedis.keys(pre_str+"*");

    Iterator<String>it=set.iterator();

    while(it.hasNext()){

    StringkeyStr=it.next();

    System.out.println(keyStr);

    jedis.del(keyStr);

    }

    }catch(Exceptione){

    e.printStackTrace();

    }finally{

    if(jedis!=null)

    jedis.close();

    }

    jedisPool.destroy();

    }

    }

以上代碼則是批量刪除以某字元串前綴的key 。

『叄』 java redis set怎樣設置key

RedisClient.set("定義名" , 內容, 時間);
eg:
RedisClient.set("loginStatus" , phone.toString(), 15 * 1000);

『肆』 java代碼中 單表查詢出的list集合 怎麼讀寫到redis中

查詢出來的結果集是返回一個List,然後你倒序添加數據到redis裡面就可以了。
// 返回一個資料庫查詢結果集,list
List<Map> list = userService.getUserList();

//倒序把數據放進去就好了,不然取出來的數據,跟你查詢出來的結果數據是相反的
for (int i = list.size() - 1; i >= 0; i--) {
RedisPool.getClient().lpush("userList", list.get(i).toString());
}
----------------------------下面是RedisPool類-------------

import redis.clients.jedis.Jedis;

/**
* redis緩存運用
*
* @author TongJun
*
*/
public class RedisPool {

// redis 對象
private static Jedis jedis = null;
private static final String IP = "127.0.0.1";
private static final int PROT = 6379;

/**
* 單例模式構造redis對象
*
* @return
*/
public static synchronized Jedis getClient() {
if (jedis == null) {
jedis = new Jedis(IP, PROT);
}
return jedis;
}

}

『伍』 redis是怎麼實現的

第一:Redis 是什麼?

Redis是基於內存、可持久化的日誌型、Key-Value資料庫 高性能存儲系統,並提供多種語言的API.

第二:出現背景

『陸』 如何用java獲取redis的info

預備
jedis-2.5.2
commons-pool2-2.2.jar
使用單連接
此方式僅建議用於開發環境做調試用。
// 創建連接
String host = "192.168.56.102";
int port = 6379;
Jedis client = new Jedis(host, port);
// 執行set指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令執行結果:%s", result) );
// 執行get指令
String value = client.get("key-string");
System.out.println( String.format("get指令執行結果:%s", value) );
運行上述代碼,控制台輸出:
set指令執行結果:OK
get指令執行結果:Hello, Redis!
使用連接池
此方式適用於僅使用單個Redis實例的場景。
// 生成連接池配置信息
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(10);
config.setMaxTotal(30);
config.setMaxWaitMillis(3*1000);

// 在應用初始化的時候生成連接池
JedisPool pool = new JedisPool(config, "192.168.56.102", 6379);

// 在業務操作時,從連接池獲取連接
Jedis client = pool.getResource();
try {
// 執行指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令執行結果:%s", result) );
String value = client.get("key-string");
System.out.println( String.format("get指令執行結果:%s", value) );
} catch (Exception e) {
// TODO: handle exception
} finally {
// 業務操作完成,將連接返回給連接池
if (null != client) {
pool.returnResource(client);
}
} // end of try block

// 應用關閉時,釋放連接池資源
pool.destroy();

運行上述代碼,控制台輸出:

set指令執行結果:OK
get指令執行結果:Hello, Redis!
使用連接池+分布式
在規模較大的系統中,往往會有多個Redis實例做負載均衡。並且還實現主從備份,當主實例發生故障時,切換至從實例提供服務。
類似於Memcached的客戶端,Jedis也提供了客戶端分布式操作的方式,採用一致性哈希演算法。
// 生成多機連接信息列表
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add( new JedisShardInfo("127.0.0.1", 6379) );
shards.add( new JedisShardInfo("192.168.56.102", 6379) );

// 生成連接池配置信息
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(10);
config.setMaxTotal(30);
config.setMaxWaitMillis(3*1000);

// 在應用初始化的時候生成連接池
ShardedJedisPool pool = new ShardedJedisPool(config, shards);

// 在業務操作時,從連接池獲取連接
ShardedJedis client = pool.getResource();
try {
// 執行指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令執行結果:%s", result) );
String value = client.get("key-string");
System.out.println( String.format("get指令執行結果:%s", value) );
} catch (Exception e) {
// TODO: handle exception
} finally {
// 業務操作完成,將連接返回給連接池
if (null != client) {
pool.returnResource(client);
}
} // end of try block

// 應用關閉時,釋放連接池資源
pool.destroy();

運行上述代碼,控制台輸出:

set指令執行結果:OK
get指令執行結果:Hello, Redis!

閱讀全文

與redisclientjava相關的資料

熱點內容
彩視製作教程 瀏覽:766
聖墟在哪個App看免費 瀏覽:395
網路哪些不能玩 瀏覽:868
probe315使用教程 瀏覽:646
數字電位器程序 瀏覽:198
c代碼整理 瀏覽:104
網路營銷具有什麼優勢 瀏覽:378
右下角網路連接不顯示寬頻連接 瀏覽:940
ps修改tif文件 瀏覽:580
預防醫學如何轉行做大數據 瀏覽:234
pdf文件變藍 瀏覽:309
怎麼在pdf文件上面用k寶簽名 瀏覽:213
如何知道表格里數據後面有空格 瀏覽:720
gee引擎更新系統找不到指定文件 瀏覽:802
貝殼網的數據刪除了如何找回 瀏覽:509
華為榮耀6x怎麼切換網路 瀏覽:418
手機里的pdf文件在哪放 瀏覽:889
java版貪吃蛇畢業論文 瀏覽:989
微信公共號郵箱 瀏覽:415
圖片寬度代碼 瀏覽:460

友情鏈接