91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot 整合Redis 數據庫的方法

發布時間:2020-08-25 20:24:30 來源:腳本之家 閱讀:139 作者:https://blog.csdn.ne 欄目:編程語言

Redis簡介

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

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

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

• Redis支持數據備份,即master-slave模式的數據備份。

SpringBoot 整合Redis 數據庫的方法 

在Mac系統上,無需下載Redis即可使用它,以下是從Redis的托管服務器下載Redis壓縮包并解壓的相關命令。

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提供的服務之前,需要先啟動Redis相關的服務,在mac系統上啟動Redis的命令如下。

src/redis-server

SpringBoot 整合Redis 數據庫的方法 

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

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

SpringBoot 整合Redis 數據庫的方法 

整合Redis 數據庫

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

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

之后我們把Redis的相關配置寫入yml,這里建議根據之前不同的環境寫入不同的配置,Redis默認使用的端口是6379,通常Redis默認使用0號數據庫,默認共有16個數據庫:

#redis配置
 redis:
# 數據庫索引
  database: 0
#  服務器地址
  host: 127.0.0.1
#  服務器連接端口
  port: 6379
#  鏈接密碼
  password:
#  鏈接池
  pool:
#  最大連接數(負值表示沒有限制)
   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實現類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";
  }
}

本文設計的實體類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
        + "]";
  }
}

總結

以上所述是小編給大家介紹的SpringBoot 整合Redis 數據庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

神池县| 四平市| 新野县| 民乐县| 台湾省| 同仁县| 哈尔滨市| 沿河| 南陵县| 马边| 桐乡市| 萨嘎县| 玉山县| 湄潭县| 浦北县| 富锦市| 南江县| 山东省| 公安县| 长白| 老河口市| 井陉县| 岳西县| 基隆市| 礼泉县| 同仁县| 开江县| 福清市| 锡林浩特市| 肥东县| 乌审旗| 山阳县| 蒙自县| 八宿县| 樟树市| 台南市| 湛江市| 青冈县| 广汉市| 阳原县| 柯坪县|