欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot 集成Redis 過程

 更新時間:2021年06月02日 08:35:49   作者:不放糖的苦咖啡  
redis是一個開源的、使用C語言編寫的、支持網(wǎng)絡交互的、可基于內(nèi)存也可持久化的Key-Value數(shù)據(jù)庫。本文給大家介紹SpringBoot 集成Redis 過程,感興趣的朋友一起看看吧

Redis 介紹: Redis 服務

Redis (REmote Dictionary Server) 是一個由Salvatore Sanfilippo 完成的key-value存儲系統(tǒng),是跨平臺的非關系型數(shù)據(jù)庫。

Redis 是一個開源的使用ANSI C語言編寫、遵循BSD 協(xié)議的、支持網(wǎng)絡、可基于內(nèi)存、分布式、可選擇持久性的鍵值對存儲數(shù)據(jù)庫,并提供多語言的API。

Redis 通常被認為是數(shù)據(jù)結構服務器,其值可以是字符串、哈希、列表、集合以及有序集合。

Redis 優(yōu)點

異???/strong>,每秒可以執(zhí)行大約110000次寫(set)操作

每秒可執(zhí)行大約81000次讀(get)操作

支持豐富的數(shù)據(jù)結構

操作具有原子性, 所有Redis 操作都是原子操作,這確保了兩個客戶端并發(fā)訪問,Redis 服務器能接收更新的值。

多使用工具,緩存,消息隊列(Redis 本地支持發(fā)布/訂閱),應用程序中的任何短期數(shù)據(jù)。

Redis 安裝

下載地址:

https://github.com/MSOpenTech/redis/releases

Redis 支持32位和64 位,下載完成后,解壓后,文件夾下面包含許多子文件,打開cmd 窗口,將其切換到redis 目錄下,輸入命名:

D:\sdk\Redis-x64-5.0.9  redis-server.exe  redis.windows.conf

Redis是什么

Redis是現(xiàn)在最受歡迎的NoSQL數(shù)據(jù)庫之一,Redis是一個使用ANSI C編寫的開源、包含多種數(shù)據(jù)結構、支持網(wǎng)絡、基于內(nèi)存、可選持久性的鍵值對存儲數(shù)據(jù)庫,其具備如下特性:

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

相比于其他數(shù)據(jù)庫類型,Redis具備的特點是:

  • C/S通訊模型
  • 單進程單線程模型
  • 豐富的數(shù)據(jù)類型
  • 操作具有原子性
  • 持久化
  • 高并發(fā)讀寫
  • 支持lua腳本

如果想使用redis 啟動更加容易的話,可以使用 將redis 安裝路徑加入到環(huán)境變量中,直接點擊 redis-server.exe 即可啟動redis 服務。

SpringBoot 集成Redis 過程

1. 在pom.xml 中配置相關依賴 jar

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

2.在SpringBoot 中配置核心文件

在application.properties 文件下添加配置redis 信息

# 配置redis
spring.redis.host:localhost
spring.redis.password=
spring.redis.port=6379

3. Redis 配置類及其使用

Redis 配置類

// RedisConfig redisconfig 配置
@Configuration
public class RedisConfig {
    /**
     * key redis serializer: {@link StringRedisSerializer} and
     * key redis serializer: {@link Jackson2JsonRedisSerializer}
     **/
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        // 創(chuàng)建對象
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        Jackson2JsonRedisSerializer valueRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        //設置Redis的value為json格式,并存儲對象信息的序列化類型
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        valueRedisSerializer.setObjectMapper(objectMapper);
​
        // 創(chuàng)建一個keyRedisSerializer
        RedisSerializer keyRedisSerializer = new StringRedisSerializer();
        // 設置信息
        template.setKeySerializer(keyRedisSerializer);
        template.setValueSerializer(valueRedisSerializer);
        template.setHashKeySerializer(keyRedisSerializer);
        template.setHashValueSerializer(valueRedisSerializer);
        template.setConnectionFactory(factory);
        template.afterPropertiesSet();
        return template;
    }
​
    // redisUtils()  方法
    @Bean
    public RedisUtils redisUtils(@Autowired RedisTemplate redisTemplate) {
        return new RedisUtils(redisTemplate);
    }
}

Redis 工具類, 首先redis 的增刪改查等操作,針對多種數(shù)據(jù)類型的數(shù)據(jù)

/**
 * redis工具類
 *
 * @author Jone
 */
// RedisUtils
@Slf4j
public class RedisUtils {
​
    // 初始化變量
    private static Logger logger = LoggerFactory.getLogger(RedisUtils.class);
​
​
    private static RedisTemplate redisTemplate;
​
    public RedisUtils(RedisTemplate redisTemplate) {
        this.redisTemplate = redisTemplate;
    }
​
    // =============================common============================
​
​
    /**
     * 判斷key是否存在
     *
     * @param key 鍵
     * @return true 存在 false不存在
     */
    public Boolean hasKey(String key) {
        try {
            return redisTemplate.hasKey(key);
        } catch (Exception e) {
            logger.error("判斷key是否存在異常: {}", e);
            return false;
        }
    }
​
    /**
     * 普通緩存獲取
     *
     * @param key 鍵
     * @return 值
     */
    public Object get(String key) {
        return key == null ? null : redisTemplate.opsForValue().get(key);
    }
​
    /**
     * 刪除
     * @param key
     * @return
     */
    public boolean del(String ... key){
        if(key!=null&&key.length>0){
​
                redisTemplate.delete(key[0]);
                return true;
            }else{
                redisTemplate.delete(CollectionUtils.arrayToList(key));
                return true;
            }
        }
        return false;
    }
​
    // SET JIHE
    public Set getKeys(){
       return redisTemplate.keys("*");
    }
​
    /**
     * 普通緩存放入
     *
     * @param key   鍵
     * @param value 值
     * @return true成功 false失敗
     */
    public Boolean set(String key, Object value) {
        try {
            redisTemplate.opsForValue().set(key, value);
            return true;
        } catch (Exception e) {
            logger.error("set異常: {}", e);
            return false;
        }
    }
}

配置完備之后,自動配置RedisTemplate ,需要操作redis 的類中注入redisTeplate,如下所示:

// 使用RedisTemplate                                                                                
@Autowired
private RedisTemplate<String, String> redisTemplate;
​
@Autowired 
private RedisTemplate<Object, Object> redisTemplate;

以上就是SpringBoot 集成Redis 過程的詳細內(nèi)容,更多關于Springboot Redis實戰(zhàn)的資料請關注腳本之家其它相關文章!

相關文章

  • Redis創(chuàng)建并修改Lua 環(huán)境的實現(xiàn)方法

    Redis創(chuàng)建并修改Lua 環(huán)境的實現(xiàn)方法

    為了在Redis服務器中執(zhí)行Lua腳本, Redis在服務器內(nèi)嵌了一個Lua環(huán)境, 并對這個Lua環(huán)境進行了一系列修改,本文主要介紹了Redis創(chuàng)建并修改Lua 環(huán)境的實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Redis持久化深入詳解

    Redis持久化深入詳解

    這篇文章主要介紹了Redis持久化深入詳解,講解的還是比較詳細的,有感興趣的同學可以學習下
    2021-03-03
  • 從源碼解讀redis持久化

    從源碼解讀redis持久化

    redis的持久化也就是數(shù)據(jù)落地,對于任何一個數(shù)據(jù)系統(tǒng)都要考慮是不是需要數(shù)據(jù)落地。在系統(tǒng)崩潰或是機房掉電等的情況下,將有用的數(shù)據(jù)記錄在非易失性存儲器上面,防止數(shù)據(jù)丟失,以及用來系統(tǒng)重啟時的數(shù)據(jù)恢復。
    2018-08-08
  • Redis分布式緩存與秒殺

    Redis分布式緩存與秒殺

    這篇文章主要介紹了Redis分布式緩存與秒殺,單點Redis的問題,主要有數(shù)據(jù)丟失,并發(fā)能力,故障恢復,存儲能力,想進一步了解的同學,可以借鑒本文
    2023-04-04
  • Windows環(huán)境部署Redis集群

    Windows環(huán)境部署Redis集群

    這篇文章主要為大家詳細介紹了Windows環(huán)境部署Redis集群的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Redis內(nèi)存碎片原理深入分析

    Redis內(nèi)存碎片原理深入分析

    這篇文章主要為大家介紹了Redis內(nèi)存碎片原理深入分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • redis?for?windows?6.2.6安裝包最新步驟詳解

    redis?for?windows?6.2.6安裝包最新步驟詳解

    這篇文章主要介紹了redis?for?windows?6.2.6安裝包全網(wǎng)首發(fā),使用Windows計劃任務自動運行redis服務,文章給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 詳解redis分布式鎖(優(yōu)化redis分布式鎖的過程及Redisson使用)

    詳解redis分布式鎖(優(yōu)化redis分布式鎖的過程及Redisson使用)

    在分布式的開發(fā)中,以電商庫存的更新功能進行講解,在實際的應用中相同功能的消費者是有多個的,這篇文章主要介紹了redis分布式鎖詳解(優(yōu)化redis分布式鎖的過程及Redisson使用),需要的朋友可以參考下
    2021-11-11
  • Redis List列表的詳細介紹

    Redis List列表的詳細介紹

    這篇文章主要介紹了Redis List列表的詳細介紹的相關資料,Redis列表是簡單的字符串列表,按照插入順序排序,需要的朋友可以參考下
    2017-08-08
  • Redission實現(xiàn)分布式鎖lock()和tryLock()方法的區(qū)別小結

    Redission實現(xiàn)分布式鎖lock()和tryLock()方法的區(qū)別小結

    Redisson是一種基于Redis的分布式鎖框架,提供了lock()和tryLock()兩種獲取鎖的方法,本文主要介紹了Redission實現(xiàn)分布式鎖lock()和tryLock()方法的區(qū)別小結,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07

最新評論