最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis使用RedisTemplate模板類的常用操作方式

 更新時間:2021年09月25日 11:00:34   作者:程序大視界  
這篇文章主要介紹了Redis使用RedisTemplate模板類的常用操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、前言

Redis是一個NoSQL(非關(guān)系型數(shù)據(jù)庫)數(shù)據(jù)庫之一,key-value存儲系統(tǒng)或者說是一個緩存鍵值對數(shù)據(jù)庫,具有如下特性:

  • 基于內(nèi)存運行,性能高效
  • 支持分布式,理論上可以無限擴(kuò)展
  • key-value存儲系統(tǒng)
  • 開源的使用ANSI C語言編寫、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API

主要應(yīng)用場景包括:

緩存系統(tǒng)、計數(shù)器、消息隊列系統(tǒng)、排行榜、社交網(wǎng)絡(luò)和實時系統(tǒng)、分布式鎖和發(fā)布/訂閱消息等。

而在程序中,對Redis的常用操作有一個專門用于操作Redis的模板類(或API),它就是RedisTemplate。

二、Redis 數(shù)據(jù)結(jié)構(gòu)簡介

Redis可以存儲鍵與5種不同數(shù)據(jù)結(jié)構(gòu)類型之間的映射,這5種數(shù)據(jù)結(jié)構(gòu)類型分別為String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。

下面來對這5種數(shù)據(jù)結(jié)構(gòu)類型作簡單的介紹:

結(jié)構(gòu)類型 結(jié)構(gòu)存儲的值 結(jié)構(gòu)的讀寫能力
String 字符串、整數(shù)或者浮點數(shù) 對整個字符串或者字符串的其中一部分執(zhí)行操作;對象和浮點數(shù)執(zhí)行自增(increment)或者自減(decrement)
List 數(shù)組鏈表,鏈表上的每個節(jié)點都包含了一個元素 從鏈表的兩端推入或者彈出元素;根據(jù)偏移量對鏈表進(jìn)行修剪(trim);讀取單個或者多個元素;根據(jù)值來查找或者移除元素
Set 包含元素的無序收集器(unorderedcollection),并且被包含的每個元素都是獨一無二的、各不相同 添加、獲取、移除單個元素;檢查一個元素是否存在于某個集合中;計算交集、并集、差集;從集合里賣弄隨機(jī)獲取元素
Hash 包含鍵值對的無序散列表 添加、獲取、移除單個鍵值對;獲取所有鍵值對
Zset 字符串成員(member)與浮點數(shù)分值(score)之間的有序映射,元素的排列順序由分值的大小決定 添加、獲取、刪除單個元素;根據(jù)分值范圍(range)或者成員來獲取元素

RedisTemplate位于spring-data-redis包下:

package org.springframework.data.redis.core; 
public class RedisTemplate<K, V> 
extends org.springframework.data.redis.core.RedisAccessor 
implements org.springframework.data.redis.core.RedisOperations<K, V> 

繼承了RedisAccessor類,實現(xiàn)了RedisOperations泛型鍵值對接口。

使用注解即可引用RedisTemplate:

@Autowired
private RedisTemplate<String,String> redisTemplate;

三、RedisTemplate對5種數(shù)據(jù)結(jié)構(gòu)的操作

redisTemplate使用如下幾種方法分別針對5種數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作:

redisTemplate.opsForValue();//操作字符串 
redisTemplate.opsForHash();//操作hash 
redisTemplate.opsForList();//操作list 
redisTemplate.opsForSet();//操作set 
redisTemplate.opsForZSet();//操作有序set

3.1 String字符串操作

//設(shè)置key和value值
redisTemplate.opsForValue().set("key","value");
//通過key獲取value值
String result = redisTemplate.opsForValue().get("key").toString();

3.2 list數(shù)組操作

//list數(shù)組對象和添加數(shù)組值
List<String> list = new ArrayList<String>();  
list.add("a1");  
list.add("a2");  
list.add("a3");  
 
//用redisTemplate模板類把list數(shù)組集合添加進(jìn)Redis
redisTemplate.opsForList().leftPush("listkey",list);  
 
//用redisTemplate模板類從Redis中根據(jù)key獲取list集合
List<String> resultList = (List<String>)redisTemplate.opsForList().leftPop("listkey");  

3.3 Hash結(jié)構(gòu),map操作

//定義Map集合和類型
Map<String,String> map = new HashMap<String,String>();  
map.put("key1","value1");  
map.put("key2","value2");  
map.put("key3","value3");  
 
//用redis模板類把map設(shè)置到redis中
redisTemplate.opsForHash().putAll("map",map);  
Map<String,String> resultMap = redisTemplate.opsForHash().entries("map");  
List<String> reslutMapList = redisTemplate.opsForHash().values("map");  
Set<String> resultMapSet = redisTemplate.opsForHash().keys("map");  
String value = (String)redisTemplate.opsForHash().get("map","key1");  

3.4 Set集合操作

//定義一個set集合并設(shè)置集合值
SetOperations<String, String> set = redisTemplate.opsForSet();
set.add("set1","22");  
set.add("set1","33");  
set.add("set1","44");  
//通過key獲取set集合中的對象值
Set<String> resultSet = redisTemplate.opsForSet().members("set1");  

四、總結(jié)

以上就是Redis的幾種常用數(shù)據(jù)結(jié)構(gòu)和操作。

很多互聯(lián)網(wǎng)大廠都有用Redis在各種業(yè)務(wù)場景進(jìn)行使用,如今分布式流行的趨勢,Redis更是舉足輕重不可不掌握的一個技術(shù);除了Redis,還有MemCache、Cassadra和Mongo等NoSQL。

希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis如何一次性插入多條數(shù)據(jù)

    Mybatis如何一次性插入多條數(shù)據(jù)

    這篇文章主要介紹了Mybatis如何一次性插入多條數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java實現(xiàn)解析第三方接口返回的json

    Java實現(xiàn)解析第三方接口返回的json

    在實際開發(fā)過程中,免不了和其他公司進(jìn)行聯(lián)調(diào),調(diào)用第三方接口,這個時候我們就需要根據(jù)對方返回的數(shù)據(jù)進(jìn)行解析,獲得我們想要的字段,下面我們就來看看具體有哪些方法吧
    2024-01-01
  • 基于Mybatis Plus實現(xiàn)代碼生成器CodeGenerator

    基于Mybatis Plus實現(xiàn)代碼生成器CodeGenerator

    這篇文章主要介紹了基于Mybatis Plus實現(xiàn)代碼生成器CodeGenerator,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot中使用MQTT實現(xiàn)消息的訂閱和發(fā)布(示例代碼)

    SpringBoot中使用MQTT實現(xiàn)消息的訂閱和發(fā)布(示例代碼)

    這篇文章主要介紹了SpringBoot中使用MQTT實現(xiàn)消息的訂閱和發(fā)布的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 在Spring?MVC中使用@ControllerAdvice創(chuàng)建全局異常處理器的方法

    在Spring?MVC中使用@ControllerAdvice創(chuàng)建全局異常處理器的方法

    在Spring?MVC中,可以使用@ControllerAdvice或@RestControllerAdvice注解來定義全局異常處理器類,并使用?@ExceptionHandler注解來定義處理特定異常的方法,本文就給大家介紹了Spring?MVC?@ControllerAdvice創(chuàng)建處理器的方法,需要的朋友可以參考下
    2023-08-08
  • Component-Scan 不掃描jar里面的類問題

    Component-Scan 不掃描jar里面的類問題

    這篇文章主要介紹了Component-Scan 不掃描jar里面的類問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java編程訪問權(quán)限的控制代碼詳解

    Java編程訪問權(quán)限的控制代碼詳解

    這篇文章主要介紹了Java編程訪問權(quán)限的控制代碼詳解,涉及包名,公共的和私有的等相關(guān)內(nèi)容,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • java 四舍五入保留小數(shù)的實現(xiàn)方法

    java 四舍五入保留小數(shù)的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava 四舍五入保留小數(shù)的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Java split函數(shù)拆分后變成null問題解決方案

    Java split函數(shù)拆分后變成null問題解決方案

    這篇文章主要介紹了Java split函數(shù)拆分后變成null問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Mybatis plus通用字段自動填充的示例

    Mybatis plus通用字段自動填充的示例

    這篇文章主要介紹了Mybatis plus通用字段自動填充的示例,幫助大家更好的理解和使用Mybatis,感興趣的朋友可以了解下
    2021-01-01

最新評論

轮台县| 永安市| 衡南县| 关岭| 门源| 富平县| 大丰市| 临猗县| 松阳县| 长治县| 阿拉尔市| 故城县| 夏邑县| 宜州市| 宝兴县| 南皮县| 嘉兴市| 临夏县| 镇赉县| 鲁甸县| 上犹县| 开江县| 保定市| 大埔县| 视频| 新平| 商水县| 邵东县| 凤城市| 揭阳市| 博乐市| 华亭县| 湘西| 花莲市| 德庆县| 北碚区| 宜都市| 林芝县| 昌江| 蓬溪县| 苗栗市|