SpringBoot 集成Redis 過程
Redis 介紹: Redis 服務
Redis (REmote Dictionary Server) 是一個由Salvatore Sanfilippo 完成的key-value存儲系統,是跨平臺的非關系型數據庫。
Redis 是一個開源的使用ANSI C語言編寫、遵循BSD 協議的、支持網絡、可基于內存、分布式、可選擇持久性的鍵值對存儲數據庫,并提供多語言的API。
Redis 通常被認為是數據結構服務器,其值可以是字符串、哈希、列表、集合以及有序集合。
Redis 優點異常快,每秒可以執行大約110000次寫(set)操作
每秒可執行大約81000次讀(get)操作
支持豐富的數據結構
操作具有原子性, 所有Redis 操作都是原子操作,這確保了兩個客戶端并發訪問,Redis 服務器能接收更新的值。
多使用工具,緩存,消息隊列(Redis 本地支持發布/訂閱),應用程序中的任何短期數據。
Redis 安裝下載地址:
https://github.com/MSOpenTech/redis/releases
Redis 支持32位和64 位,下載完成后,解壓后,文件夾下面包含許多子文件,打開cmd 窗口,將其切換到redis 目錄下,輸入命名:
D:sdkRedis-x64-5.0.9 redis-server.exe redis.windows.conf
Redis是什么Redis是現在最受歡迎的NoSQL數據庫之一,Redis是一個使用ANSI C編寫的開源、包含多種數據結構、支持網絡、基于內存、可選持久性的鍵值對存儲數據庫,其具備如下特性:
基于內存運行,性能高效 支持分布式,理論上可以無限擴展 key-value存儲系統 開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API相比于其他數據庫類型,Redis具備的特點是:
C/S通訊模型 單進程單線程模型 豐富的數據類型 操作具有原子性 持久化 高并發讀寫 支持lua腳本如果想使用redis 啟動更加容易的話,可以使用 將redis 安裝路徑加入到環境變量中,直接點擊 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 信息
# 配置redisspring.redis.host:localhostspring.redis.password=spring.redis.port=6379
3. Redis 配置類及其使用
Redis 配置類
// RedisConfig redisconfig 配置@Configurationpublic class RedisConfig { /** * key redis serializer: {@link StringRedisSerializer} and * key redis serializer: {@link Jackson2JsonRedisSerializer} **/ @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {// 創建對象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);// 創建一個keyRedisSerializerRedisSerializer 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 的增刪改查等操作,針對多種數據類型的數據
/** * redis工具類 * * @author Jone */// RedisUtils@Slf4jpublic 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 @Autowiredprivate RedisTemplate<String, String> redisTemplate;@Autowired private RedisTemplate<Object, Object> redisTemplate;
以上就是SpringBoot 集成Redis 過程的詳細內容,更多關于Springboot Redis實戰的資料請關注好吧啦網其它相關文章!
相關文章: