SpringCloud+MyBatis+Redis整合—— 超詳細實例(二)
阿新 • • 發佈:2018-08-16
數據庫 primary pri open nosql html batis urn hub
2、SpringCloud+MyBatis+Redis
redis是一種nosql數據庫,以鍵值對<key,value>的形式存儲數據,其速度相比於MySQL之類的數據庫,相當於內存讀寫與硬盤讀寫的差別,所以常常用作緩存,用於少寫多讀的場景下,直接從緩存拿數據比從數據庫(數據庫要I/O操作)拿要快得多。
話不多說,接下來緊接上一章《SpringCloud+MyBatis+Redis整合—— 超詳細實例(一)》搭建SpringCloud+MyBatis+Redis環境:
- 第一步:在pom.xml文件中添加
1 <!-- Redis緩存整合開始 -->2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-data-redis</artifactId> 5 </dependency> 6 <!-- Redis緩存整合結束 -->
- 第二步:下載Windows版Redis https://github.com/MSOpenTech/redis/releases
打開一個 cmd 窗口 使用cd命令切換目錄到 F:\dev-space\workspaces\newPlatform-2018\RedisForWindow 運行 redis-server.exe redis.windows.conf 。(放文件的實際路徑)
第三步:改造controller類,新增Service類讓方法擁有Redis緩存
1 @Service 2 public class UserService { 3 @Autowired 4 private UserMapper userMapper; 5 6 @Cacheable(value="user", key="‘user‘")①7 public User selectByPrimaryKey(Integer id) { 8 System.out.println("開始查詢....."); 9 try { 10 Thread.sleep(3 * 1000l); 11 } catch (InterruptedException e) { 12 e.printStackTrace(); 13 } 14 System.out.println("查詢結束......"); 15 User user=userMapper.selectByPrimaryKey(id); 16 17 return user; 18 } 19 20 }
1 @RestController 2 public class HelloController { 3 @Autowired 4 private UserService userService; 5 6 @RequestMapping("/hello") 7 public String index() { 8 long beginTime=System.currentTimeMillis(); 9 User user = userService.selectByPrimaryKey(1); 10 long time=System.currentTimeMillis()-beginTime; 11 return "Hello SpringBoot"+user.getName()+",消耗查詢時間:"+time; 12 13 } 14 15 16 }
- 第四步:在頁面輸入http://127.0.0.1:1111/hello,第一次可以看到通過查詢並延遲三秒
當第二次輸入後,該查詢會從Redis緩存中獲取,所以時間沒有延遲三秒,並且非常迅速
從cmd中 該目錄下輸入 redis-cli get user得到:
說明該對象以存入Redis緩存當中。
至此,SpringCloud+MyBats+Redis搭建成功!
SpringCloud+MyBatis+Redis整合—— 超詳細實例(二)