springboot使用redis實現從配置到實戰

2022-09-27 07:24:08 字數 2888 閱讀 7887

目錄

springboot通常整合redis,採用的是redistemplate的形式,除了這種形式以外,還有另外一種形式去整合,即採用spring支援的註解進行訪問快取.

pom.xml

redis.clients

jedis

2.7.3

org.springframework.data

spring-data-redis

1.7.2.release

org.springframework.boot

spring-boot-starter-redis

release

application.properties

# redis (redisproperties)

# redis資料庫索引(預設為0)

spring.redis.database=0

# redis伺服器位址

spring.redis.host=127.0.0.1

# r程式設計客棧edis伺服器連線埠

spring.redis.port=6379

# 連線池最大連線數(使用負值表示沒有限制)

spring.redis.pool.max-active=8

# 連線池最大阻塞等待時間(使用負值表示沒有限制)

spring.redis.pool.max-wait=-1

# 連線池中的最大空閒連線

spring.redis.pool.max-idle=8

# 連線池中的最小空閒連線

spring.redis.pool.min-idle=0

# 連線超時時間(毫秒)

spring.redis.timeout=0

redis配置類

package cn.chenlove.config;

import org.apache.log4j.logger;

import org.springframework.beans.factory.annotation.value;

import org.springframework.cache.annotation.cachingconfigurersupport;

import org.springframework.cache.annotation.enablecaching;

import org.springframework.context.annotation.bean;

import org.springframework.context.annotation.configuration;

import redis.clients.jedis.jedispool;

import redis.clients.jedis.jedispoolconfig;

@configuration

@enablecaching

public class redisconfig extends cachingconfigurersupport")

private string host;

@value("$")

private int port;

@value("$")

private int timeout;

@value("$")

private int maxidle;

@value("$")

private long maxwaitmillis;

@bean

public jedispool redispoolfactory()

}可以看出,我們這裡主要配置了兩個東西,cachemanager方法配置了乙個快取名稱,它的名字叫做thisredis,當我們要在方法註解裡面使用到它的時候,就要根據名稱進行區分不同快取.同時設定了緩

存的過期時間.redistemplate則是比較常見的,我們設定了redistemplate,因此在**裡面,我們也可以通過@autowired注入redistemplate來操作redis.

接下來就是如何使用註解啦,這一步反而是最簡單的.其實只用到了兩個註解,@cacheable和@cacheevict.第乙個註解代表從快取中查詢指定的key,如果有,從快取中取,不再執行方法.如果沒有則執

行方法,並且將方法的返回值和指定的key關聯起來,放入到快取中.而@cacheevict則是從快取中清除指定的key對應的資料.使用的**如下:

//有引數

@cacheable(value="thisredis", key="'users_'+#id")

public user finduser(integer id) ,密碼:{}",user.getusername(),user.getpassword());

return user;

}@cacheevict(value="thisredis", key="'users_'+#id",condition="#id!=1")

public void deluser(integer id)

//無引數

@requestmapping("/get")

@cacheable(value="thisredis")

@responsebody

public list xx()

@requestmapping("/get3")

@cacheevict(value="thisredis")

@responsebody

public string xx3()

可以看出,我們用@cacheable的value屬性指定具體快取,並通過key將其放入快取中.這裡key非常靈活,支援spring的el表示式,可以通過方法引數產生可變的key(見finduser方法),也可以通過其指定在

什麼情況下,使用/不使用快取(見deluser方法).

gitee碼雲:程式設計客棧rojects

spring session使用配置redis

1.新增依賴 dependency groupid org.springframework.session groupid artifactid spring session data redis artifactid version 1.2.0.release version dependency...

使用Cacti監控MongoDB和Redis

cacti 是一套基於php,mysql,snmp及rrdtool開發的網路流量監測圖形分析工具。被廣泛的用於對伺服器的運維監控中,cacti提供了一種外掛程式式的管理,只要按要求寫好特定的模板,那麼你就可以對任何服務進行流量監控 本文就是要為大家介紹兩個模板,分別是mongodb 和redis 的...

JAVA使用pipeline批量寫Redis資料

最近遇到乙個需求,需要把資料庫中的手機號批量寫入到資料庫,使用了很多的方法都效能不佳或者出現連線池斷開的問題,最後在網上找到了這個方法 public static void main string args throws exception long end system.currenttimemi...