最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Redis簡介

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

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

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

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

在Mac系統(tǒng)上,無需下載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ù)之前,需要先啟動Redis相關(guān)的服務(wù),在mac系統(tǒng)上啟動Redis的命令如下。

src/redis-server

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

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

 

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

使用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默認使用的端口是6379,通常Redis默認使用0號數(shù)據(jù)庫,默認共有16個數(shù)據(jù)庫:

#redis配置
 redis:
# 數(shù)據(jù)庫索引
  database: 0
#  服務(wù)器地址
  host: 127.0.0.1
#  服務(wù)器連接端口
  port: 6379
#  鏈接密碼
  password:
#  鏈接池
  pool:
#  最大連接數(shù)(負值表示沒有限制)
   max-active: 8
#   最大阻塞等待時間(負值表示沒有限制)
   max-wait: 1
#   最大空閑鏈接
   max-idle: 8
#   最小空閑鏈接
   min-idle: 0
#  鏈接超時時間(毫秒)
  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包中建立一個RedisService.java類。

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

新建一個service實現(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獲取某個用戶
  @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è)計的實體類User.java的代碼如下,需要把對象存放在redis需要將對象序列化。

@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ù)庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • @Transactional跟@DS動態(tài)數(shù)據(jù)源注解沖突的解決

    @Transactional跟@DS動態(tài)數(shù)據(jù)源注解沖突的解決

    這篇文章主要介紹了@Transactional跟@DS動態(tài)數(shù)據(jù)源注解沖突的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 從內(nèi)存模型中了解Java final的全部細節(jié)

    從內(nèi)存模型中了解Java final的全部細節(jié)

    關(guān)于final關(guān)鍵字,它也是我們一個經(jīng)常用的關(guān)鍵字,可以修飾在類上、或者修飾在變量、方法上,以此看來定義它的一些不可變性!像我們經(jīng)常使用的String類中,它便是final來修飾的類,并且它的字符數(shù)組也是被final所修飾的。但是一些final的一些細節(jié)你真的了解過嗎
    2022-03-03
  • Java實戰(zhàn)項目練習(xí)之球館在線預(yù)約系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)項目練習(xí)之球館在線預(yù)約系統(tǒng)的實現(xiàn)

    理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SpringBoot+maven+freemark+Mysql實現(xiàn)一個球館在線預(yù)約系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • SpringBoot開發(fā)案例 分布式集群共享Session詳解

    SpringBoot開發(fā)案例 分布式集群共享Session詳解

    這篇文章主要介紹了SpringBoot開發(fā)案例 分布式集群共享Session詳解,在分布式系統(tǒng)中,為了提升系統(tǒng)性能,通常會對單體項目進行拆分,分解成多個基于功能的微服務(wù),可能還會對單個微服務(wù)進行水平擴展,保證服務(wù)高可用,需要的朋友可以參考下
    2019-07-07
  • 如何使用Gradle實現(xiàn)類似Maven的profiles功能

    如何使用Gradle實現(xiàn)類似Maven的profiles功能

    這篇文章主要介紹了如何使用Gradle實現(xiàn)類似Maven的profiles功能,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • java使用Abobe Acrobat DC生成模板

    java使用Abobe Acrobat DC生成模板

    這篇文章主要介紹了java使用Abobe Acrobat DC生成模板,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Serializable接口的作用_動力節(jié)點Java學(xué)院整理

    Serializable接口的作用_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細介紹了java中Serializable接口的作用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Freemarker 最簡單的例子程序

    Freemarker 最簡單的例子程序

    Freemarker最簡單的例子程序是通過String來創(chuàng)建模版對象,并執(zhí)行插值處理。
    2016-04-04
  • SpringBoot3.0自定stater模塊的操作流程(chatGPT提供的49種場景)

    SpringBoot3.0自定stater模塊的操作流程(chatGPT提供的49種場景)

    SpringBoot3.0發(fā)布等重磅陸消息續(xù)進入大家的視線,而本文作者將以技術(shù)整合的角度,帶大家把最火的兩個技術(shù)整合在一起,通過本文學(xué)習(xí)你將熟悉SpringBoot3.0自定stater模塊的操作流程,并熟悉OpenAi為chatGPT提供的49種場景,感興趣的朋友一起看看吧
    2022-12-12
  • springboot如何讀取自定義屬性

    springboot如何讀取自定義屬性

    大家好,本篇文章主要講的是springboot如何讀取自定義屬性,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02

最新評論

灵川县| 平乡县| 顺平县| 武功县| 古蔺县| 平乡县| 株洲市| 祥云县| 枣阳市| 军事| 资兴市| 渭源县| 潞西市| 和平区| 德保县| 甘孜县| 阜新市| 民乐县| 玉环县| 辽宁省| 海阳市| 婺源县| 出国| 延寿县| 榆林市| 陇西县| 增城市| 新建县| 台北县| 澄城县| 乐平市| 工布江达县| 桃江县| 固镇县| 论坛| 桦川县| 阿合奇县| 齐齐哈尔市| 吴堡县| 调兵山市| 于田县|