国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Redis入門篇】| Redis的Java客戶端

這篇具有很好參考價(jià)值的文章主要介紹了【Redis入門篇】| Redis的Java客戶端。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一:?Redis的Java客戶端

1. Jedis快速入門

2. Jedis連接池

3. SpringDataRedis快速入門

4. RedisSerializer配置

5. StringRedisTemplate

圖書推薦


一:?Redis的Java客戶端

在Redis官網(wǎng)中提供了各種語言的客戶端,地址:https://redis.io/resources/clients/

Jedis:Redis命令作為方法名稱,學(xué)習(xí)成本低,簡單實(shí)用。但是Jedis實(shí)例是線程不安全的,多線程環(huán)境下需要基于連接池來使用。

lettuce:lettuce是基于Netty實(shí)現(xiàn)的,支持同步、異步和響應(yīng)式編程方式,并且是線程安全的。支持Redis的哨兵模式、集群模式和管道模式。

Redission:Redisson是一個(gè)基于Redis實(shí)現(xiàn)的分布式、可伸縮的Java數(shù)據(jù)結(jié)構(gòu)集合。包含了諸如MapQueue、Lock、 Semaphore、AtomicLong等強(qiáng)大功能。

【Redis入門篇】| Redis的Java客戶端

1. Jedis快速入門

Jedis的官網(wǎng)地址: https://github.com/redis/jedis,我們先來個(gè)快速入門:

(1)引入依賴

<!--jedis依賴-->
<dependency>
   <groupId>redis.clients</groupId>
   <artifactId>jedis</artifactId>
   <version>3.7.0</version>
</dependency>
<!--單元測試依賴-->
<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.12</version>
   <scope>test</scope>
</dependency>

(2)建立連接:直接alt+insert生成setUp方法

創(chuàng)建Jedis對象,輸入IP和port;調(diào)用auth()方法輸入密碼,調(diào)用select()方法選擇數(shù)據(jù)庫!

@Before
public void setUp() throws Exception {
    // 建立接連
    jedis = new Jedis("192.168.2.129",6379);
    // 設(shè)置密碼
    jedis.auth("123456");
    // 選擇庫
    jedis.select(0);
}

(3)進(jìn)行操作測試:直接alt+insert生成測試方法,手動(dòng)修改方法名即可

注:對于Jedis,方法體中所調(diào)用的方法,其實(shí)就是redis中的命令!

@Test
public void testString() {
   // 存數(shù)據(jù)
   String set = jedis.set("name", "張三");
   System.out.println("set = " + set);
   // 取數(shù)據(jù)
   String name = jedis.get("name");
   System.out.println("name = " + name);
}

(4)釋放資源:直接alt+insert生成tearDown方法

@After
public void tearDown() throws Exception {
   if (jedis != null) {
        jedis.close();
   }
}

具體代碼:

package com.zl.jedis;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;

public class JedisTest {
    private Jedis jedis;

    // 建立連接
    @Before
    public void setUp() throws Exception {
        // 建立接連
        jedis = new Jedis("192.168.2.129",6379);
        // 設(shè)置密碼
        jedis.auth("123456");
        // 選擇庫
        jedis.select(0);
    }

    // 操作
    @Test
    public void testString() {
        // 存數(shù)據(jù)
        String set = jedis.set("name", "張三");
        System.out.println("set = " + set);
        // 取數(shù)據(jù)
        String name = jedis.get("name");
        System.out.println("name = " + name);
    }

    @After
    public void tearDown() throws Exception {
        if (jedis != null) {
            jedis.close();
        }
    }
}

執(zhí)行結(jié)果:

【Redis入門篇】| Redis的Java客戶端


2. Jedis連接池

Jedis本身是線程不安全的,并且頻繁的創(chuàng)建和銷毀連接會(huì)有性能損耗,因此推薦大家使用Jedis連接池代替Jedis的直連方式!

①首先定義一個(gè)工具類JedisConnectionFactory類,用來獲取Jedis連接池對象;

②定義一個(gè)靜態(tài)的成員變量JedisPool(jedis連接池);

③在靜態(tài)代碼塊中,創(chuàng)建JedisPoolConfig對象(jedis的一些配置),并配置一些基本信息;

④創(chuàng)建jedis連接池對象JedisPool,參數(shù)就是JedisPoolConfig對象、IP、端口、密碼等信息;

⑤最終調(diào)用JedisPool對象的getResource方法,獲取連接池對象。

package com.zl.util;

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

public class JedisConnectionFactory {
    private static final JedisPool jedisPool;

    static {
        // 配置連接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        // 最大連接
        jedisPoolConfig.setMaxTotal(8);
        // 最大空閑連接
        jedisPoolConfig.setMaxIdle(8);
        // 最小空閑連接
        jedisPoolConfig.setMinIdle(0);
        // 設(shè)置最長等待時(shí)間
        jedisPoolConfig.setMaxWaitMillis(1000);
        // 創(chuàng)建連接池
        jedisPool = new JedisPool(jedisPoolConfig, "192.168.2.129", 6379, 1000, "123456");
    }

    // 獲取Jedis對象
    public static Jedis getJedis() {
        return jedisPool.getResource();
    }
}


3. SpringDataRedis快速入門

SpringData是Spring中數(shù)據(jù)操作的模塊,包含對各種數(shù)據(jù)庫的集成,其中對Redis的集成模塊就叫做SpringDataRedis,官網(wǎng)地址:Spring Data Redis

①提供了對不同Redis客戶端的整合(Lettuce和Jedis);

②提供了RedisTemplate統(tǒng)一API來操作Redis;

③支持Redis的發(fā)布訂閱模型;

④支持Redis哨兵和Redis集群;

⑤支持基于Lettuce的響應(yīng)式編程;

⑥支持基于JDK、JSON、字符串、Spring對象的數(shù)據(jù)序列化及反序列化;

⑦支持基于Redis的JDKCollection實(shí)現(xiàn);

SpringDataRedis中提供了RedisTemplate工具類,其中封裝了各種對Redis的操作。并且將不同數(shù)據(jù)類型的操作API封裝到了不同的類型中(相對于直接使用jredis進(jìn)行分組了):

API

返回值類型

說明

redisTemplate.opsForValue()

ValueOperations

操作String類型數(shù)據(jù)

redisTemplate.opsForHash()

HashOperations

操作Hash類型數(shù)據(jù)

redisTemplate.opsForList()

ListOperations

操作List類型數(shù)據(jù)

redisTemplate.opsForSet()

SetOperations

操作Set類型數(shù)據(jù)

redisTemplate.opsForZSet()

ZSetOperations

操作SortedSet類型數(shù)據(jù)

redisTemplate

通用的命令

SpringBoot已經(jīng)提供了對SpringDataRedis的支持,SpringDataRedis的使用步驟:

①引入spring-boot-starter-data-redis起步依賴;

②在application.yml配置Redis信息;

③注入RedisTemplate;

(1)引入依賴

<!--Redis起步依賴-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>
<!--連接池依賴,無論是Jedis還是lettcue都是基于連接池的-->
  <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
  </dependency>

(2)application.yml配置文件

注:Spring默認(rèn)引入的是lettuce,要想使用jedis還要引入jedis的依賴;但是無論是lettuce還是jedis都是基于連接池創(chuàng)建連接的,所以需要前面的commons-pool2連接池依賴。

spring:
  redis:
    host: 192.168.2.129
    port: 6379
    password: 123456
    lettuce:
      pool:
        max-active: 8 #最大連接
        max-idle: 8 #最大空閑連接
        min-idle: 0 #最小空閑連接
        max-wait: 100 #連接等待時(shí)間

(3)注入RedisTemplate并測試

package com.zl;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;

@SpringBootTest
class SpringDataRedisApplicationTests {
    // 注入RedisTemplate
    @Autowired
    private RedisTemplate redisTemplate;


    @Test
    void testString() {
        // 插入數(shù)據(jù),參數(shù)不僅僅是字符串,Java對象也可以
        redisTemplate.opsForValue().set("name","小紅");
        // 獲取數(shù)據(jù)
        Object name = redisTemplate.opsForValue().get("name");
        System.out.println("name = " + name);

    }

}

執(zhí)行結(jié)果:

【Redis入門篇】| Redis的Java客戶端


4. RedisSerializer配置

SpringDataRedis的序列化方式:RedisTemplate可以接收任意Object作為值寫入Redis,只不過寫入前會(huì)把Object序列化為字節(jié)形式,默認(rèn)是采用JDK序列化,得到的結(jié)果是這樣的:

【Redis入門篇】| Redis的Java客戶端

實(shí)際上這個(gè)key和value就是我們前面存入的小紅(序列化后的結(jié)果);SpringDataRedis可以接收任何對象,怎么實(shí)現(xiàn)的?就是通過對象的數(shù)據(jù)進(jìn)行序列化及反序列化!

從哪里可以看出是使用了JDK的序列化方式

【Redis入門篇】| Redis的Java客戶端

缺點(diǎn):

①可讀性差;

②內(nèi)存占用較大;

有其它的序列化方式嗎?

①JdkSerializationRedisSerializer:使用JDK的序列化方式,前面我們已經(jīng)用過了!

②StringRedisSerializer:專門處理字符串的類型,例如key基本上都是字符串!

③GenericJackson2JsonRedisSerializer:如果value是對象,建議使用這個(gè)!

怎樣做到,所存即所得呢?我們可以自定義RedisTemplate的序列化方式,代碼如下:

package com.zl.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory connectionFactory){
        // 創(chuàng)建RedisTemplate對象
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        // 連接工廠,這個(gè)工廠springboot會(huì)幫我們創(chuàng)建好
        template.setConnectionFactory(connectionFactory);
        // 創(chuàng)建JSON序列化工具
        GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
        // 設(shè)置key的序列化方式
        template.setKeySerializer(RedisSerializer.string());
        template.setHashKeySerializer(RedisSerializer.string());
        // 設(shè)置value的序列化方式
        template.setValueSerializer(jsonRedisSerializer);
        template.setHashValueSerializer(jsonRedisSerializer);
        // 返回
        return template;
    }

}

其中RedisSerializer的string()方法就是使用了StringRedisSerializer的一個(gè)常量

【Redis入門篇】| Redis的Java客戶端

因?yàn)槭褂昧薐SON序列化工具,所以還要引入JSON依賴

<!--引入Jackson依賴-->
<dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
</dependency>

再次進(jìn)行測試

package com.zl;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;

@SpringBootTest
class SpringDataRedisApplicationTests {
    // 注入RedisTemplate
    @Autowired
    private RedisTemplate<String,Object> redisTemplate; // 引用泛型


    @Test
    void testString() {
        // 插入數(shù)據(jù),參數(shù)不僅僅是字符串,Java對象也可以
        redisTemplate.opsForValue().set("name","小紅");
        // 獲取數(shù)據(jù)
        Object name = redisTemplate.opsForValue().get("name");
        System.out.println("name = " + name);

    }

}

執(zhí)行結(jié)果:

【Redis入門篇】| Redis的Java客戶端

思考:如果使用Java對象呢??

?給定一個(gè)User對象

package com.zl.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


// 使用以下注解需要引入lombok依賴
@Data // setter and getter
@NoArgsConstructor // 無參構(gòu)造
@AllArgsConstructor  // 有參構(gòu)造
public class User {
    private String name;
    private Integer age;
    
}

進(jìn)行測試

package com.zl;

import com.zl.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;

@SpringBootTest
class SpringDataRedisApplicationTests {
    // 注入RedisTemplate
    @Autowired
    private RedisTemplate redisTemplate; // 引用泛型


    @Test
    void testSaveUser() {
        // 插入數(shù)據(jù)
        redisTemplate.opsForValue().set("user",new User("張三",18));
        // 取出數(shù)據(jù)
        User user = (User) redisTemplate.opsForValue().get("user");
        System.out.println("user = " + user);
    }
}

執(zhí)行結(jié)果:

【Redis入門篇】| Redis的Java客戶端

圖形界面客戶端:

自動(dòng)的把Java對象轉(zhuǎn)換為JSON寫入,當(dāng)獲取結(jié)果的時(shí)候也能反序列化為User對象;實(shí)際上在寫入JSON的同時(shí),把User的字節(jié)碼名稱也寫進(jìn)去了com.zl.pojo.User,通過這個(gè)屬性在反序列化的時(shí)候轉(zhuǎn)換成User對象!

注:為了在反序列化時(shí)知道對象的類型,不僅僅寫了User對象的屬性,還把類的class類型寫入了Json結(jié)果中,存入redis,會(huì)帶來額外的內(nèi)存開銷。

【Redis入門篇】| Redis的Java客戶端


5. StringRedisTemplate

為了節(jié)省內(nèi)存空間,我們并不會(huì)使用JSON序列化器來處理value,而是統(tǒng)一使用String序列化器 ,要求只能存儲(chǔ)String類型的key和value。當(dāng)需要存儲(chǔ)Java對象時(shí),手動(dòng)完成對象的序列化和反序列化!

【Redis入門篇】| Redis的Java客戶端

Spring默認(rèn)提供了一個(gè)StringRedisTemplate類,它的key和value的序列化方式默認(rèn)就是String方式。省去了我們自定義RedisTemplate的過程!

所以,現(xiàn)在最重要的就是處理Java對象,手動(dòng)序列化和反序列

(1)使用JSON工具ObjectMapper(SpringMVC處理Json工具):調(diào)用ObjectMapper對象writeValuesString()方法手動(dòng)完成序列化,轉(zhuǎn)換成json格式的字符串存入redis;調(diào)用ObjectMapper對象的readValue()方法手動(dòng)完成反序列化,轉(zhuǎn)換成Java對象!

(2)也可以使用fastjson是阿里巴巴的開源JSON解析庫,需要引入fastjon依賴。然后調(diào)用JSONtoJSONString()方法,轉(zhuǎn)換成json格式的字符串;調(diào)用JSON的parseObject()方法,轉(zhuǎn)換成Java對象!

package com.zl;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zl.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;


@SpringBootTest
class ApplicationTest {
    // 注入StringRedisTemplate
    @Autowired
    private StringRedisTemplate stringredisTemplate;
    // JSON工具
    private static final ObjectMapper mapper = new ObjectMapper(); // ObjectMapper是SpringMVC處理Json的工具
    // fastjson是阿里巴巴的開源JSON解析庫


    @Test
    void testString() {
        // 對于普通字符串步驟不變
        stringredisTemplate.opsForValue().set("name","小紅");
        Object name = stringredisTemplate.opsForValue().get("name");
        System.out.println("name = " + name);

    }

    @Test
    void testSaveUser() throws JsonProcessingException {
        // 對于Java對象加上手動(dòng)轉(zhuǎn)步驟
        // 準(zhǔn)備Java對象
        User user = new User("虎哥", 18);
        // 手動(dòng)序列化
        // String json = mapper.writeValueAsString(user); // 把Java對象轉(zhuǎn)換成Json格式的字符串
        String json = JSON.toJSONString(user);
        // 寫入redis
        stringredisTemplate.opsForValue().set("user",json);
        // 讀取數(shù)據(jù)
        String val = stringredisTemplate.opsForValue().get("user"); // 讀出來的是Json格式的字符串
        // 反序列化
        // User user1 = mapper.readValue(val, User.class);
        User user1 = JSON.parseObject(val, User.class);
        System.out.println("user1 = " + user1);


    }
}

執(zhí)行結(jié)果:

【Redis入門篇】| Redis的Java客戶端

圖形界面客戶端:

【Redis入門篇】| Redis的Java客戶端

補(bǔ)充:對于其它類型結(jié)構(gòu)可能就更偏向于JavaAPI的編寫方式,例如:Hash結(jié)構(gòu)

①對于存數(shù)據(jù),不是使用hset()方法,在Spring中不是以命令名作為方法名,因?yàn)轭愃朴贘ava中的HashMap結(jié)構(gòu),所以方法名與HashMap結(jié)構(gòu)的保持一致,使用put()方法進(jìn)行存取。

②對于取數(shù)據(jù),不使用hget,使用的是get()方法取單個(gè),如果取多個(gè)使用entrys()方法。

@Test
void testHash() {
    // 插入數(shù)據(jù)
    stringredisTemplate.opsForHash().put("user:100","name","張三");
    stringredisTemplate.opsForHash().put("user:100","age","18");
    // 取出數(shù)據(jù)
    Object name = stringredisTemplate.opsForHash().get("user:100", "name"); // 取一個(gè)
    Map<Object, Object> entries = stringredisTemplate.opsForHash().entries("user:100");
    System.out.println("entries = " + entries); // 取所有

}

總結(jié)RedisTemplate的兩種序列化實(shí)踐方案:

方案一:

①自定義RedisTemplate

②修改RedisTemplate的序列化器為GenericJackson2JsonRedisSerializer

方案二:

①使用StringRedisTemplate

②寫入Redis時(shí),手動(dòng)把對象序列化為JSON;讀取Redis時(shí),手動(dòng)把讀取到的JSON反序列化為對象

圖書推薦

本期圖書:《元宇宙Ⅱ:圖解元技術(shù)區(qū)塊鏈、元資產(chǎn)與Web3.0、元人與理想國(全三冊)》、《產(chǎn)業(yè)鏈金融平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)》

參與方式:

本次送書 1?本(二選一哦)!?
活動(dòng)時(shí)間:截止到 2023-05-09?00:00:00。

抽獎(jiǎng)方式:利用程序進(jìn)行抽獎(jiǎng)。

參與方式:關(guān)注博主(只限粉絲福利哦)、點(diǎn)贊、收藏,評論區(qū)隨機(jī)抽取,最多三條評論!

????????看半小時(shí)漫畫,通元宇宙未來100年,300幅手繪插圖輕松讀懂虛實(shí)共生的未來世界。剖析元宇宙三大定律、大統(tǒng)一方程、熵增定律、Web3.0、萬億元資產(chǎn)、元人與區(qū)塊鏈文明,構(gòu)建元宇宙大樓。講透元技術(shù)區(qū)塊鏈、元宇宙基石Web3.0到穿越未來的技術(shù)大革命。厘清8大產(chǎn)業(yè)規(guī)律和11大投資方向,從元宇宙經(jīng)濟(jì)學(xué)到財(cái)富自由2.0,構(gòu)建NO.1無限∞世界的數(shù)字空間,從元人到理想國。

????????這是一個(gè)全新的時(shí)代:Web3.0構(gòu)建的經(jīng)濟(jì)體系,DID身份的跨平臺(tái)操作,數(shù)字NFT的原子級(jí)鏡像,以及DeFi的無摩擦元資產(chǎn)再分配......2022年,奇點(diǎn)出現(xiàn):元人即將誕生;元資產(chǎn)即將分配;元宇宙正在成形。本套書通過元宇宙三大定律、大統(tǒng)一方程、熵增定律、Web3.0、萬億元資產(chǎn)、元人與區(qū)塊鏈文明構(gòu)建了元宇宙第一大樓。第1-80層:數(shù)字人展位、電子寵物、數(shù)字藏品、3D沉侵式旅游、DeFi。第81-160層:AI、VR、AR、MR、DAO、Web3.0、邊緣計(jì)算。第161-214+層:多場景閱讀、4K空間、跨鏈許可、維度轉(zhuǎn)換、無限∞世界。

【Redis入門篇】| Redis的Java客戶端

當(dāng)當(dāng)自營購買鏈接:http://product.dangdang.com/29513251.html

?????????本書從產(chǎn)業(yè)鏈金融的起源講起,結(jié)合實(shí)際案例講解產(chǎn)業(yè)鏈金融平臺(tái)的前臺(tái)設(shè)計(jì)、技術(shù)中臺(tái)設(shè)計(jì)、數(shù)據(jù)平臺(tái)設(shè)計(jì)、風(fēng)控設(shè)計(jì)及信息安全的核心要點(diǎn),既體現(xiàn)了傳統(tǒng)行業(yè)的業(yè)務(wù)創(chuàng)新、數(shù)字轉(zhuǎn)型的探索過程,又介紹了當(dāng)前主流銀行的開放性建設(shè)成果。讀者不但能全方位地了解產(chǎn)業(yè)鏈金融平臺(tái)的建設(shè)過程,還能針對自己感興趣的方面進(jìn)行深入學(xué)習(xí)。

????????本書共6章,第1章介紹了產(chǎn)業(yè)鏈金融的發(fā)展、變革歷程,以及對傳統(tǒng)企業(yè)的核心價(jià)值;第2章介紹了系統(tǒng)核心功能的設(shè)計(jì)及在線簽約、實(shí)名認(rèn)證等技術(shù)的原理;第3章介紹了結(jié)合容器云技術(shù)、微服務(wù)技術(shù)與DevOps技術(shù)構(gòu)建技術(shù)中臺(tái)的過程,以及對接開放銀行、央行征信的過程;第4章介紹了開源大數(shù)據(jù)平臺(tái)的建設(shè)及數(shù)據(jù)倉庫的設(shè)計(jì)思路;第5章基于Python的機(jī)器學(xué)習(xí)庫介紹了智能風(fēng)控的開發(fā)過程;第6章介紹了在產(chǎn)業(yè)鏈金融平臺(tái)建設(shè)過程中如何規(guī)避信息安全的法律風(fēng)險(xiǎn)。

????????本書內(nèi)容全面,且圍繞開源技術(shù)展開介紹,實(shí)用性極強(qiáng),特別適合建設(shè)產(chǎn)業(yè)鏈金融平臺(tái)的傳統(tǒng)企業(yè)架構(gòu)師、開發(fā)人員及產(chǎn)品人員閱讀,也適合對開源的技術(shù)中臺(tái)、大數(shù)據(jù)平臺(tái)及信用風(fēng)控感興趣的開發(fā)人員閱讀。

【Redis入門篇】| Redis的Java客戶端

京東自營購買鏈接:https://item.jd.com/13797946.html文章來源地址http://www.zghlxwxcb.cn/news/detail-438934.html

到了這里,關(guān)于【Redis入門篇】| Redis的Java客戶端的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Redis入門篇】| Redis的Java客戶端

    【Redis入門篇】| Redis的Java客戶端

    目錄 一:?Redis的Java客戶端 1. Jedis快速入門 2. Jedis連接池 3. SpringDataRedis快速入門 4. RedisSerializer配置 5. StringRedisTemplate 圖書推薦 在Redis官網(wǎng)中提供了各種語言的客戶端,地址: https://redis.io/resources/clients/ Jedis: 以 Redis 命令作為方法名稱,學(xué)習(xí)成本低,簡單實(shí)用。但是 Jedis 實(shí)

    2024年02月03日
    瀏覽(21)
  • Redis系列學(xué)習(xí)文章分享---第一篇(Redis快速入門之初始Redis--NoSql+安裝redis+客戶端+常用命令)

    Redis系列學(xué)習(xí)文章分享---第一篇(Redis快速入門之初始Redis--NoSql+安裝redis+客戶端+常用命令)

    歡迎小伙伴交流學(xué)習(xí),這是第一篇(Redis快速入門之初始Redis–NoSql+安裝redis+客戶端+常用命令),后續(xù)持續(xù)更新 Redis是一種鍵值型的NoSql數(shù)據(jù)庫,這里有兩個(gè): 鍵值型 NoSql 其中 鍵值型 ,是指Redis中存儲(chǔ)的數(shù)據(jù)都是以key、value對的形式存儲(chǔ),而value的形式多種多樣,可以

    2024年02月20日
    瀏覽(24)
  • 【實(shí)踐篇】Redis最強(qiáng)Java客戶端(一)之Redisson入門介紹

    【實(shí)踐篇】Redis最強(qiáng)Java客戶端(一)之Redisson入門介紹

    1.1.1 起源和歷史 Redisson 最初由 GitHub 用戶 “mrniko” 創(chuàng)建,并在 Apache 2.0 許可證下發(fā)布。它的目標(biāo)是提供一組強(qiáng)大的工具和 API,幫助開發(fā)人員在分布式環(huán)境中處理數(shù)據(jù),并解決并發(fā)和一致性的問題。 Redisson 是一款在 Redis 的基礎(chǔ)上實(shí)現(xiàn)的 Java 駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory Data Grid)

    2024年02月09日
    瀏覽(21)
  • Redis數(shù)據(jù)遷移過程,使用jedis客戶端發(fā)送命令,需要注意string和byte類型的命令,如果使用的轉(zhuǎn)換字符編碼不一致,會(huì)導(dǎo)致丟數(shù)據(jù)

    string與byte來回轉(zhuǎn)換,需要指定一樣字符編碼規(guī)則 詳細(xì)原因請參考: 關(guān)于Java中bytes到String的轉(zhuǎn)換-阿里云開發(fā)者社區(qū) ? 簡單來說 (1)string和byte轉(zhuǎn)換之間需要指定字符編碼參數(shù)Charset.defaultCharset(),默認(rèn)不指定的情況下,使用的是utf-8編碼,所以一般情況下相互轉(zhuǎn)換使用的都是同

    2023年04月09日
    瀏覽(29)
  • Redis的Java客戶端-Java客戶端以及SpringDataRedis的介紹與使用

    Redis的Java客戶端-Java客戶端以及SpringDataRedis的介紹與使用

    Spring Data Redis底層支持同時(shí)兼容Jedis和Lettuce兩種不同的Redis客戶端,可以根據(jù)需要任意選擇使用其中的一種。這樣既可以保留現(xiàn)有代碼使用的Jedis方式,也可以通過使用基于Netty的高性能Lettuce客戶端,提升應(yīng)用的性能和吞吐量。 Jedis是一個(gè)傳統(tǒng)的Java Redis客戶端,使用BIO進(jìn)行So

    2024年02月08日
    瀏覽(22)
  • Redis的Java客戶端

    Redis的Java客戶端

    以下是redis.io官網(wǎng)所推薦使用前五的Java客戶端 Java客戶端 特點(diǎn) Jedis 以Redis命令作為方法名稱,學(xué)習(xí)成本低,簡單實(shí)用,但是Jedis實(shí)例是線程不安全的,多線程環(huán)境下需要基于連接池來使用 lettuce Lettuce是基于Netty實(shí)現(xiàn)的,支持同步、異步和響應(yīng)式編程方式,并且是線程安全的。

    2024年02月13日
    瀏覽(25)
  • Redis中的Java客戶端

    Redis中的Java客戶端

    Jedis是一個(gè)Java實(shí)現(xiàn)的Redis客戶端連接工具。 Jedis使用非常簡單,直接引入依賴?;谀J(rèn)參數(shù)的Jedis連接池,初始化連接池類(使用默認(rèn)連接池參數(shù))JedisPool,獲取一個(gè)Jedis連接Jedis jedis=jp.getResource()。 Jedis是線程不安全的,多線程使用同一個(gè)Jedis實(shí)例,會(huì)出現(xiàn)并發(fā)問題,原因是

    2024年01月17日
    瀏覽(22)
  • 使用Flutter構(gòu)建ChatGPT客戶端:快速入門指南

    使用Flutter構(gòu)建ChatGPT客戶端:快速入門指南

    在本篇博客文章中,我們將通過OpenAI的API構(gòu)建一個(gè)簡單的對話界面,與ChatGPT進(jìn)行聊天。 近來OpenAI和ChatGPT的熱度很高,尤其是最近發(fā)布的GPT-4。這類工具的大量使用案例已經(jīng)涌現(xiàn)出來,但目前人們最常用ChatGPT的方式是通過chat.openai.com進(jìn)行聊天。我一直在使用ChatGPT來激發(fā)靈感、

    2024年02月05日
    瀏覽(21)
  • Redis學(xué)習(xí)路線(3)——Redis的Java客戶端

    一、如何使用Redis的Java客戶端 官方文檔: https://redis.io/docs/clients/java/ Java-Redis客戶端 使用場景 Jeids 以Redis命令作為方法名稱,學(xué)習(xí)成本低,簡單實(shí)現(xiàn),但是Jedis實(shí)例是線程不安全的,多線程環(huán)境下需要基于連接池使用。 lettuce Lettuce 是基于Netty實(shí)現(xiàn)的,支持同步、異步和響應(yīng)式

    2024年02月15日
    瀏覽(22)
  • 【Redis】Spring/SpringBoot 操作 Redis Java客戶端

    【Redis】Spring/SpringBoot 操作 Redis Java客戶端

    1.Jedis 2.Lettuce(主流) -Spring Data Redis 1.添加Redis 驅(qū)動(dòng)依賴 2.設(shè)置Redis 連接信息 3.根據(jù)Redis API 操作Redis

    2024年02月13日
    瀏覽(68)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包