簡介: web
Redis是一個開源的使用ANSI C語言編寫、遵照BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。它一般被稱爲數據結構服務器,由於值(value)能夠是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。redis
1.首先在虛擬機上的Centos上安裝完成redis,而且完成redis.conf文件的配置(後臺啓動,密碼,IP等等),啓動redis-server redis.confspring
2. 查看是否啓動:數據庫
3.使用win下的RedisDesktopManager鏈接虛擬機上的redis服務器
4.建立項目:網絡
spring-boot-starter-data-redis默認使用的Redis工具是Lettuce,我在這裏使用的是Jedis,因此exclusion他
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency>
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
配置文件:application.properties,其中須要配置哪些看本身需求,前面幾個是須要的數據結構
spring.redis.database=0 spring.redis.host=192.168.205.100 spring.redis.port=6379 spring.redis.password=123456
#spring.redis.lettuce.pool.max-active=
#spring.redis.lettuce.pool.max-idle=
#spring.redis.lettuce.pool.max-wait=
#spring.redis.lettuce.pool.min-idle=
#spring.redis.lettuce.shutdown-timeout=
#鏈接池最大鏈接數 spring.redis.jedis.pool.max-active=8 #鏈接池中的最大空閒鏈接 spring.redis.jedis.pool.max-idle=8 #鏈接池最大阻塞等待時間(使用負值表示沒有限制) spring.redis.jedis.pool.max-wait=-1ms #鏈接池中的最小空閒鏈接 spring.redis.jedis.pool.min-idle=0
注意:app
SpringBoot的自動配置類中提供了RedisAutoConfiguration進行Redis配置,源碼以下,application.properties中的配置文件將被注入到RedisProperties中,若是開發者沒有提供RedisTemplate和StringRedisTemplate這兩個類,SpringBoot會默認提供這兩個實例。spring-boot
@Configuration @ConditionalOnClass({RedisOperations.class}) @EnableConfigurationProperties({RedisProperties.class}) @Import({LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class}) public class RedisAutoConfiguration { public RedisAutoConfiguration() { } @Bean @ConditionalOnMissingBean( name = {"redisTemplate"} ) public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<Object, Object> template = new RedisTemplate(); template.setConnectionFactory(redisConnectionFactory); return template; } @Bean @ConditionalOnMissingBean public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { StringRedisTemplate template = new StringRedisTemplate(); template.setConnectionFactory(redisConnectionFactory); return template; } }
Controller:工具
@RestController public class BookController { @Autowired RedisTemplate redisTemplate; @Autowired StringRedisTemplate stringRedisTemplate; @GetMapping("/test1") public void test1() { //使用stringRedisTemplate ValueOperations<String, String> ops1 = stringRedisTemplate.opsForValue(); ops1.set("name", "三國演義"); String name = ops1.get("name"); System.out.println(name); // 使用redisTemplate ValueOperations ops2 = redisTemplate.opsForValue(); Book b1 = new Book(); b1.setId(1); b1.setName("紅樓夢"); b1.setAuthor("曹雪芹"); ops2.set("b1", b1); Book book = (Book) ops2.get("b1"); System.out.println(book); } }
啓動,訪問http://localhost:8080/test1
控制檯表示,已經成功存儲而且能夠獲取到redis中的數據了:
redis中: