溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

spring boot 使用 redis 緩存

發(fā)布時(shí)間:2020-07-08 02:27:46 來源:網(wǎng)絡(luò) 閱讀:421 作者:北極冷冷冷 欄目:編程語言

spring boot redis 使用 1

Redis:
Redis 是完全開源免費(fèi)的,遵守BSD協(xié)議,是一個(gè)高性能的key-value數(shù)據(jù)庫。
Redis 與其他 key - value 緩存產(chǎn)品有以下三個(gè)特點(diǎn):
Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。
Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。
Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

spring boot 中如何使用:

  1. 引入依賴 pom.xml

    <!-- redis -->
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
  2. 配置redis

    #redis配置
    #Redis服務(wù)器地址
    spring.redis.host=192.168.5.10
    #Redis服務(wù)器連接端口
    spring.redis.port=6379
    #Redis數(shù)據(jù)庫索引(默認(rèn)為0)
    spring.redis.database=4
    #連接池最大連接數(shù)(使用負(fù)值表示沒有限制)
    spring.redis.jedis.pool.max-active=50
    #連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒有限制)
    spring.redis.jedis.pool.max-wait=3000
    #連接池中的最大空閑連接
    spring.redis.jedis.pool.max-idle=20
    #連接池中的最小空閑連接
    spring.redis.jedis.pool.min-idle=2
    #連接超時(shí)時(shí)間(毫秒)
    spring.redis.timeout=5000

  3. 修改啟動(dòng)類 添加 @EnableCaching 注解

    @RestController@SpringBootApplication
    br/>@SpringBootApplication
    br/>@EnableCaching

  4. 實(shí)體類添加 序列化支持

    public class User implements Serializable

  5. 在 service 上加上緩存注解

    @Service
    public class MybatisUserService {
    
            @Autowired
            UserMapper userDao;
    
            public int add(User user){
                return   userDao.add(user);
            }
    
            public int update(User user){
                    return   userDao.update(user);
            }
    
            @Cacheable(value = "user-key")
            public User getById(long id){
                    System.out.println("從數(shù)據(jù)庫獲取數(shù)據(jù)");
                    return   userDao.findUserById(id);
            }
    }

----------------自動(dòng)加入緩存結(jié)束------------
手動(dòng)操作緩存:

@Component
public class RedisUtil {

        @Autowired
        private RedisTemplate<String, String> redisTemplate;

        /**
         * 讀取緩存
         *
         * @param key
         * @return
         */
        public String get(final String key) {
                return redisTemplate.opsForValue().get(key);
        }

        /**
         * 寫入緩存
         */
        public boolean set(final String key, String value) {
                boolean result = false;
                try {
                        redisTemplate.opsForValue().set(key, value);
                        result = true;
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return result;
        }

        /**
         * 更新緩存
         */
        public boolean getAndSet(final String key, String value) {
                boolean result = false;
                try {
                        redisTemplate.opsForValue().getAndSet(key, value);
                        result = true;
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return result;
        }

        /**
         * 刪除緩存
         */
        public boolean delete(final String key) {
                boolean result = false;
                try {
                        redisTemplate.delete(key);
                        result = true;
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return result;
        }
}

redis 簡單的操作介紹完成

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI