1. 程式人生 > >SpringCloud+MyBatis+Redis整合—— 超詳細實例(二)

SpringCloud+MyBatis+Redis整合—— 超詳細實例(二)

數據庫 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整合—— 超詳細實例(二)