国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Redis > 正文

SpringBoot整合Lettuce redis過程解析

2024-09-07 00:33:48
字體:
來源:轉載
供稿:網友

首先解釋一下Lettuce客戶端:

Lettuce 和 Jedis 的都是連接Redis Server的客戶端程序。Jedis在實現上是直連redis server,多線程環境下非線程安全,除非使用連接池,為每個Jedis實例增加物理連接。Lettuce基于Netty的連接實例(StatefulRedisConnection),可以在多個線程間并發訪問,且線程安全,滿足多線程環境下的并發訪問,同時它是可伸縮的設計,一個連接實例不夠的情況也可以按需增加連接實例。

1、添加依賴

<dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-data-redis</artifactId>    </dependency>    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-pool2</artifactId>    </dependency>

2、添加redis配置

spring: redis:   host: ****   password:****   port: 6379 # 連接超時時間(毫秒)   timeout: 1000 # Redis默認情況下有16個分片,這里配置具體使用的分片,默認是0   database: 0 # 連接池配置   lettuce:    pool: # 連接池最大連接數(使用負值表示沒有限制) 默認 8     max-active: 8 # 連接池最大阻塞等待時間(使用負值表示沒有限制) 默認 -1     max-wait: -1 # 連接池中的最大空閑連接 默認 8     max-idle: 8 # 連接池中的最小空閑連接 默認 0     min-idle: 0

3、實現邏輯

@Autowired  private StringRedisTemplate stringRedisTemplate;  @Override  public String testRedis(){    ExecutorService executorService = Executors.newFixedThreadPool(1000);    IntStream.range(0, 1000).forEach(i -> executorService.execute(() -> stringRedisTemplate.opsForValue().increment("lcl",1)));    System.out.println("lcl1=============" + stringRedisTemplate.opsForValue().get("lcl"));    stringRedisTemplate.opsForValue().set("lcl1","val1");    String val1 = stringRedisTemplate.opsForValue().get("lcl1");    System.out.println("lcl1=============" + val1);    String key = "redis:test:demo1";    User user = new User();    user.setId(100L);    user.setUsername("u2");    user.setPassword("p2");    stringRedisTemplate.opsForValue().set(key, JSON.toJSONString(user));    String valUser = stringRedisTemplate.opsForValue().get(key);    System.out.println("redis:test:demo1=============" + valUser);    User getUser = JSON.parseObject(valUser, User.class);    System.out.println("redis:test:demo1=============" + getUser.getUsername()+ "========" + getUser.getPassword());    return null;  }

測試結果:

由于redis有String、list、set、zset、hash、geo等類型,因此使用時不止使用opsForValue()方法,具體的對應方法如下:

opsForValue: 對應 String(字符串) opsForZSet: 對應 ZSet(有序集合) opsForHash: 對應 Hash(哈希) opsForList: 對應 List(列表) opsForSet: 對應 Set(集合) opsForGeo: 對應 GEO(地理位置)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網之家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林省| 东阳市| 水富县| 菏泽市| 黄浦区| 北京市| 福泉市| 竹山县| 黔江区| 彭阳县| 朝阳市| 晋城| 闻喜县| 海兴县| 福建省| 霍邱县| 松滋市| 辽阳市| 丰宁| 合山市| 屏南县| 崇信县| 无为县| 精河县| 获嘉县| 随州市| 卓资县| 巴南区| 两当县| 苗栗县| 许昌市| 克拉玛依市| 夏津县| 永丰县| 漾濞| 会理县| 大渡口区| 稻城县| 西平县| 罗城| 罗甸县|