前提:你已經安裝了Redisredis
一、建立一個spring boot 工程spring
二、pom 引入依賴:spring-boot-starter-data-redisapache
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
三、在application.propertise 配置Redis相關參數session
######################################################## ###redis (redis) ######################################################## #開發 spring.redis.host=localhost spring.redis.port= 6379 spring.redis.password=123456 spring.session.store-type=redis spring.redis.database=1 # 鏈接池中的最大空閒鏈接 spring.redis.pool.max-idle= 8 # 鏈接池中的最小空閒鏈接 spring.redis.pool.min-idle= 0 # 鏈接池最大鏈接數(使用負值表示沒有限制) spring.redis.pool.max-active= 8 # 鏈接池最大阻塞等待時間(使用負值表示沒有限制) spring.redis.pool.max-wait= -1 # 鏈接超時時間(毫秒) spring.redis.timeout= 6000
4.建立Redis工廠app
@Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.timeout}") private int timeout; @Value("${spring.redis.pool.max-idle}") private int maxIdle; @Value("${spring.redis.pool.max-wait}") private long maxWaitMillis; @Value("${spring.redis.password}") private String password; @Bean public JedisPool redisPoolFactory() { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(maxIdle); jedisPoolConfig.setMaxWaitMillis(maxWaitMillis); jedisPoolConfig.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy"); JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password); return jedisPool; }
五、須要redis時,直接注入便可spring-boot
@Autowired private RedisTemplate redisTemplate;
6. redisTemplate 使用,Redis能夠操做五種數據類型(字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set))spa
6.1 字符串(String)code
保存blog
redisTemplate.opsForValue().set("key1","value1");
redisTemplate.opsForValue().set("key2","value2");
取值開發
String result1=redisTemplate.opsForValue().get("key1").toString();
String result2=redisTemplate.opsForValue().get("key2").toString();
6.2 哈希/散列/字典(Hash)
保存
Map<String,String> map=new HashMap<String,String>(); map.put("key1","1"); map.put("key2","2"); map.put("key3","3"); map.put("key4","4"); map.put("key5","5"); redisTemplate.opsForHash().putAll("hashMap",map);
取值
String value=(String)redisTemplate.opsForHash().get("hashMap","key1"); //結果是 1 Map<String,String> resultMap= redisTemplate.opsForHash().entries("hashMap"); //結果是 {key1=1, key2=2, key5=5, key3=3, key4=4}
List<String>reslutMapList=redisTemplate.opsForHash().values("hashMap"); //結果是 取得全部value值[1,2,3,4,5]
Set<String>resultMapSet=redisTemplate.opsForHash().keys("hashMap"); //結果是 取得key值 [key1, key2, key5, key3, key4]
6.3 列表(List)
保存
List<Pays> requestJsonList = new Array<>(); redisTemplate.opsForList().leftPush("key1", requestJsonList); //將list集合放入Redis
取值
List<Pays> requestJsonList1 = (List<Pays>) redisTemplate.opsForList().leftPop("key1");
7.總結操做
redisTemplate.opsForValue();//操做字符串 redisTemplate.opsForHash();//操做hash redisTemplate.opsForList();//操做list redisTemplate.opsForSet();//操做set redisTemplate.opsForZSet();//操做有序set