欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot?整合Redis?數(shù)據(jù)庫(kù)的方法

 更新時(shí)間:2022年05月20日 09:30:33   作者:xiangzhihong8  
Redis是一個(gè)基于內(nèi)存的日志型可持久化的緩存數(shù)據(jù)庫(kù),保存形式為key-value格式,Redis完全免費(fèi)開源,它使用ANSI?C語(yǔ)言編寫。這篇文章主要介紹了SpringBoot?整合Redis?數(shù)據(jù)庫(kù)的方法,需要的朋友可以參考下

Redis簡(jiǎn)介

Redis(官網(wǎng): https://redis.io )是一個(gè)基于內(nèi)存的日志型可持久化的緩存數(shù)據(jù)庫(kù),保存形式為key-value格式,Redis完全免費(fèi)開源,它使用ANSI C語(yǔ)言編寫。與其他的key - value緩存產(chǎn)品一樣,Redis具有以下三個(gè)特點(diǎn)。

• Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用;

• Redis不僅支持簡(jiǎn)單的key-value類型數(shù)據(jù),同時(shí)還提供字符串、鏈表、集合、有序集合和哈希等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ);

• Redis支持?jǐn)?shù)據(jù)備份,即master-slave模式的數(shù)據(jù)備份。

在Mac系統(tǒng)上,無(wú)需下載Redis即可使用它,以下是從Redis的托管服務(wù)器下載Redis壓縮包并解壓的相關(guān)命令。

wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar xzf redis-4.0.8.tar.gz
cd redis-4.0.8
make

使用Redis提供的服務(wù)之前,需要先啟動(dòng)Redis相關(guān)的服務(wù),在mac系統(tǒng)上啟動(dòng)Redis的命令如下。

src/redis-server

然后,重新打開一個(gè)Redis客戶端,使用以下的命令來連接Redis server。

src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

 

整合Redis 數(shù)據(jù)庫(kù)

使用Redis之前需要引入相關(guān)依賴,Maven方式依賴的腳本如下:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

之后我們把Redis的相關(guān)配置寫入yml,這里建議根據(jù)之前不同的環(huán)境寫入不同的配置,Redis默認(rèn)使用的端口是6379,通常Redis默認(rèn)使用0號(hào)數(shù)據(jù)庫(kù),默認(rèn)共有16個(gè)數(shù)據(jù)庫(kù):

#redis配置
 redis:
# 數(shù)據(jù)庫(kù)索引
  database: 0
#  服務(wù)器地址
  host: 127.0.0.1
#  服務(wù)器連接端口
  port: 6379
#  鏈接密碼
  password:
#  鏈接池
  pool:
#  最大連接數(shù)(負(fù)值表示沒有限制)
   max-active: 8
#   最大阻塞等待時(shí)間(負(fù)值表示沒有限制)
   max-wait: 1
#   最大空閑鏈接
   max-idle: 8
#   最小空閑鏈接
   min-idle: 0
#  鏈接超時(shí)時(shí)間(毫秒)
  timeout: 0

如果是application.properties方式,部分配置如下:

spring.redis.hostName=127.0.0.1
spring.redis.port=6379  
spring.redis.pool.maxActive=8  
spring.redis.pool.maxWait=-1  
spring.redis.pool.maxIdle=8  
spring.redis.pool.minIdle=0  
spring.redis.timeout=0

新建RedisConfig.java文件用來存放配置文件。

@Configuration 
@EnableCaching//開啟注解 
public class RedisConfig extends CachingConfigurerSupport {
  @Bean
  public CacheManager cacheManager(RedisTemplate<?,?> redisTemplate) {
    CacheManager cacheManager = new RedisCacheManager(redisTemplate);
    return cacheManager;
  }
  @Bean
  public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
    RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
    redisTemplate.setConnectionFactory(factory);
    return redisTemplate;
  }
}

在service包中建立一個(gè)RedisService.java類。

public interface RedisService {
  public void set(String key, Object value); 
  public Object get(String key); 
}

新建一個(gè)service實(shí)現(xiàn)類RedisServiceImpl.java。

@Service
public class RedisServiceImpl implements RedisService {
  @Resource
  private RedisTemplate<String,Object> redisTemplate;
  public void set(String key, Object value) {
    ValueOperations<String,Object> vo = redisTemplate.opsForValue();
     vo.set(key, value);
  }
  public Object get(String key) {
    ValueOperations<String,Object> vo = redisTemplate.opsForValue();
    return vo.get(key);
  }
}

新建Controller層代碼UserController.java

@Controller
@RequestMapping(path="/user")
public class UserController {
  @Autowired
  private UserService userService;
  @Autowired
  private RedisService redisService;
  //從redis獲取某個(gè)用戶
  @RequestMapping(value = "/getuserfromredis", method = RequestMethod.GET)
  public @ResponseBody User getRedis(@RequestParam String key) {
    return (User)redisService.get(key);
  }
  //獲取所有用戶
  @RequestMapping(value = "/getusers", method = RequestMethod.GET)
  public @ResponseBody Page<User> list(Model model, Pageable pageable){
    return userService.findAll(pageable); 
  }
  //添加用戶
  @GetMapping(value="/adduser")
  public @ResponseBody String addUser(@RequestParam String dictum,
      @RequestParam String password, @RequestParam String username) {
    User user = new User();
    user.setDictum(dictum);
    user.setPassword(password);
    user.setUsername(username);
    System.out.println(user);
    userService.saveUser(user);
    redisService.set(user.getId()+"", user);
    return "Saved";
  }
}

本文設(shè)計(jì)的實(shí)體類User.java的代碼如下,需要把對(duì)象存放在redis需要將對(duì)象序列化。

@Entity
@Table(name="s_user")
public class User implements Serializable {
  private static final long serialVersionUID = 1L;
  @Id 
  @GeneratedValue(strategy=GenerationType.AUTO)
  private Integer id;
  private String username;
  private String password;
  private String dictum;
  @OneToMany(mappedBy = "user", fetch = FetchType. LAZY, cascade = {CascadeType. ALL})
  private Set<Photo> setPhoto;
  //省略getter和setter
  @Override
  public String toString() {
    return "User [id=" + id + ", username=" + username + ", password="
        + password + ", dictum=" + dictum + ", setPhoto=" + setPhoto
        + "]";
  }
}

總結(jié)

以上所述是小編給大家介紹的SpringBoot 整合Redis 數(shù)據(jù)庫(kù)的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • SpringBoot實(shí)戰(zhàn)之實(shí)現(xiàn)結(jié)果的優(yōu)雅響應(yīng)案例詳解

    SpringBoot實(shí)戰(zhàn)之實(shí)現(xiàn)結(jié)果的優(yōu)雅響應(yīng)案例詳解

    這篇文章主要介紹了SpringBoot實(shí)戰(zhàn)之實(shí)現(xiàn)結(jié)果的優(yōu)雅響應(yīng)案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java靜態(tài)static關(guān)鍵字原理詳解

    Java靜態(tài)static關(guān)鍵字原理詳解

    這篇文章主要介紹了Java靜態(tài)static關(guān)鍵字原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 一文徹底搞懂Java和JDK的版本命名問題

    一文徹底搞懂Java和JDK的版本命名問題

    今天通過本文給大家分享我對(duì)Java的版本號(hào)以及JDK的命名的了解,通過實(shí)例圖文展示給大家介紹的非常詳細(xì),需要的朋友跟隨小編一起看看吧
    2021-06-06
  • SpringCloud解決feign調(diào)用token丟失問題解決辦法

    SpringCloud解決feign調(diào)用token丟失問題解決辦法

    在feign調(diào)用中可能會(huì)遇到如下問題:同步調(diào)用中,token丟失,這種可以通過創(chuàng)建一個(gè)攔截器,將token做透?jìng)鱽斫鉀Q,異步調(diào)用中,token丟失,這種就無(wú)法直接透?jìng)髁?因?yàn)樽泳€程并沒有token,這種需要先將token從父線程傳遞到子線程,再進(jìn)行透?jìng)?/div> 2024-05-05
  • 詳解Spring依賴注入的三種方式使用及優(yōu)缺點(diǎn)

    詳解Spring依賴注入的三種方式使用及優(yōu)缺點(diǎn)

    這篇文章主要介紹了spring依賴注入的三種方式的使用方法,以及優(yōu)缺點(diǎn)的介紹,通過代碼示例介紹的非常詳細(xì),感興趣的小伙伴可以參考一下
    2023-04-04
  • java實(shí)現(xiàn)網(wǎng)站微信掃碼支付

    java實(shí)現(xiàn)網(wǎng)站微信掃碼支付

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)網(wǎng)站微信掃碼支付,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • SpringCloud中的Hystrix保護(hù)機(jī)制詳解

    SpringCloud中的Hystrix保護(hù)機(jī)制詳解

    這篇文章主要介紹了SpringCloud中的Hystrix保護(hù)機(jī)制詳解,Hystrix,英文意思是豪豬,全身是刺,看起來就不好惹,是一種保護(hù)機(jī)制,Hystrix也是Netflix公司的一款組件,需要的朋友可以參考下
    2023-12-12
  • Geotools實(shí)現(xiàn)shape文件的寫入功能

    Geotools實(shí)現(xiàn)shape文件的寫入功能

    Geotools作為開源的Java?GIS三方庫(kù),已經(jīng)成為GIS服務(wù)器端的主流開源庫(kù),其功能非常強(qiáng)大,涉及到GIS業(yè)務(wù)的方方面面,其中就包括GIS數(shù)據(jù)的讀寫,今天小編就借助Geotools來實(shí)現(xiàn)shape數(shù)據(jù)的寫入,需要的朋友可以參考下
    2023-08-08
  • Spring IOC原理補(bǔ)充說明(循環(huán)依賴、Bean作用域等)

    Spring IOC原理補(bǔ)充說明(循環(huán)依賴、Bean作用域等)

    這篇文章主要介紹了Spring IOC原理補(bǔ)充說明(循環(huán)依賴、Bean作用域等),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 教你如何將Springboot項(xiàng)目成功部署到linux服務(wù)器

    教你如何將Springboot項(xiàng)目成功部署到linux服務(wù)器

    這篇文章主要介紹了如何將Springboot項(xiàng)目成功部署到linux服務(wù)器上,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12

最新評(píng)論