麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Redis > 正文

Redis如何存儲對象與集合示例詳解

2020-10-28 21:33:56
字體:
來源:轉載
供稿:網友

前言

大家都知道在項目中,緩存以及mq消息隊列可以說是不可或缺的2個重要技術。前者主要是為了減輕數據庫壓力,大幅度提升性能。后者主要是為了提高用戶的體驗度,我理解的是再后端做的一個ajax請求(異步),并且像ribbmitmq等消息隊列有重試機制等功能。

這里主要講redis如何把對象,集合存入,并且取出。下面話不多說了,來一起看看詳細的介紹吧。

1.在啟動類上加入如下代碼

private Jedis jedis;private JedisPoolConfig config;private JedisShardInfo sharInfo;@Beanpublic Jedis jedis(){//連接redis服務器,192.168.0.100:6379// jedis = new Jedis("192.168.0.100", 6379);// //權限認證// jedis.auth("123456");// 操作單獨的文本串config = new JedisPoolConfig(); config.setMaxIdle(1000);//最大空閑時間config.setMaxWaitMillis(1000); //最大等待時間config.setMaxTotal(500); //redis池中最大對象個數sharInfo = new JedisShardInfo("192.168.0.100", 6379); sharInfo.setPassword("123456"); sharInfo.setConnectionTimeout(5000);//鏈接超時時間jedis = new Jedis(sharInfo);return jedis; } 

2.在application.yml當中加入redis配置

spring:  redis:  database: 0  host: 101.132.191.77  port: 6379  password: 123456  pool:  max-idle: 8 #連接池最大連接數(使用負值表示沒有限制)  min-idle: 0 # 連接池中的最小空閑連接  max-active: 8 # 連接池最大阻塞等待時間(使用負值表示沒有限制)  max-wait: -1 # 連接池中的最大空閑連接  timeout: 5000 # 連接超時時間(毫秒) 

3.新建SerializeUtil類,這個類主要是為了將對象序列化redis當中

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream;/** public class SerializeUtil {  public static byte[] serialize(Object object) {  ObjectOutputStream oos = null;  ByteArrayOutputStream baos = null;  try {// 序列化baos = new ByteArrayOutputStream();   oos = new ObjectOutputStream(baos);   oos.writeObject(object);   byte[] bytes = baos.toByteArray();   return bytes;   } catch (Exception e) {    }return null;  }  public static Object unserialize( byte[] bytes) {  ByteArrayInputStream bais = null;  try {  // 反序列化bais = new ByteArrayInputStream(bytes);  ObjectInputStream ois = new ObjectInputStream(bais);  return ois.readObject();   } catch (Exception e) {    }return null;  }  } 

4.我封裝了一個RedisServiceImpl類,主要是用對redis設值和取值

import com.ys.util.redis.SerializeUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @Service public class RedisServiceImpl   {@Autowired   private StringRedisTemplate stringRedisTemplate;  @Autowired  private Jedis jedis;  public void setStr(String key, String value) {  setStr(key, value, null);  }  public void setStr(String key, Object value, Long time)  {if(value == null){  return;  }if(value instanceof String){  String obj = (String) value;  stringRedisTemplate.opsForValue().set(key, obj);  }else if(value instanceof List){  List obj = (List) value;  stringRedisTemplate.opsForList().leftPushAll(key,obj);  }else if(value instanceof Map){  Map obj = (Map) value;  stringRedisTemplate.opsForHash().putAll(key,obj);  }if (time != null)  stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);  }  public Object getKey(String key)  {return stringRedisTemplate.opsForValue().get(key);   }  public void delKey(String key) {  stringRedisTemplate.delete(key);  }  public boolean del(String key)  {return jedis.del(key.getBytes())>0;  } } 

5.測試redis是否ok,編寫redisController類

import com.ys.service.impl.RedisServiceImpl; import com.ys.vo.IqProduct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.Date; import java.util.List; @RestController  public class RedisServiceController   { @Autowired  private RedisServiceImpl redisService; @RequestMapping(value = "/setredis") public String setredis(String keyredis){  redisService.setStr(keyredis,"2018年1月26日");  return "保存成功,請訪問getredis查詢redis"; } @RequestMapping(value = "/setObj") public String setObj(String keyredis){  IqProduct iqProduct = new IqProduct();  iqProduct.setSort(1);  iqProduct.setTimestamp(new Date().getTime());  iqProduct.setProductName("productname");  // list.add(iqProduct);  redisService.set(keyredis, iqProduct);  return "保存成功,請訪問getredis查詢redis";  }  @RequestMapping(value = "/getObj")  public Object getObj(String keyredis){  Object object = redisService.get(keyredis);  if(object !=null){  IqProduct iqProduct = (IqProduct) object;  System. out.println(iqProduct.getProductName());  System. out.println(iqProduct.getId());  System. out.println(iqProduct.getTimestamp());  }return object; }  @RequestMapping(value = "/delObj")  public boolean delObj(String keyredis)  {boolean del = redisService.del(keyredis);   return del;  }  @RequestMapping(value = "/getredis")  public String getredis(String keyredis){  String getredis = (String) redisService.getKey(keyredis);  return "redis的key是===>"+getredis;  }  @RequestMapping(value = "/delredis")  public String delredis(String keyredis){  redisService.delKey(keyredis);  return "刪除成功,請通過getredis進行查詢";  }  @RequestMapping(value = "/setList")  public String setList(String keyredis){  List list = new ArrayList();for (int i = 0;i<10;i++){  IqProduct iqProduct = new IqProduct();  iqProduct.setSort(1);  iqProduct.setTimestamp(new Date().getTime());  iqProduct.setProductName("productname");  list.add(iqProduct);  }  redisService.set(keyredis, list);  return "保存成功,請訪問getredis查詢redis";  }  @RequestMapping(value = "/getList")  public Object getList(String keyredis){  Object object = redisService.get(keyredis);  if(object !=null){  List<IqProduct> iqProducts = (List<IqProduct>) object;  for (int i = 0;i<iqProducts.size();i++){  IqProduct iqProduct = iqProducts.get(i);  System. out.println(iqProduct.getProductName());  System. out.println(iqProduct.getId());  System. out.println(iqProduct.getTimestamp());  }  }return object;  }  @RequestMapping(value = "/delList")  public boolean delList(String keyredis)  {  boolean del = redisService.del(keyredis);return del;  } } 

6.測試結果


總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精热 | 国产精品视频一区二区三区四 | 91午夜理伦私人影院 | 看国产毛片 | 一级黄色av电影 | 一区二区免费看 | 视频一区二区三区视频 | 久久精品日产第一区二区三区 | 久久久久久久久成人 | 成人福利免费在线观看 | 国产精品久久久免费 | 午夜男人在线观看 | 日本成人一区二区 | 午夜久 | 免费在线性爱视频 | 久久久久久久久久美女 | 亚洲网站在线观看视频 | 亚洲免费毛片基地 | 九九热在线视频观看 | 亚洲国产精品久久久 | 精品一区二区在线播放 | 在线观看国产网站 | 久久影片| fc2成人免费人成在线观看播放 | 国产色视频在线观看免费 | 免费国产自久久久久三四区久久 | 国产资源在线免费观看 | 校花被肉干高h潮不断 | 97人人草| 一级一片免费看 | 免费一级在线视频 | 亚洲视频观看 | 亚洲最新黄色网址 | 国产一级毛片高清视频完整版 | 欧美综合在线观看视频 | 日本黄色大片免费 | 国产pron| 在线成人免费观看视频 | 久久久久久久一区二区 | 亚洲免费网站 | 国人精品视频在线观看 |