reids

redis属于非关系型数据库,通过键值对保存数据,不适合做频繁的更新数据,它可以解决高并发和大量数据访问。
redis是可基于内存的非关系型数据库,同时也可以将数据持久化到磁盘,支持数据库集群+读写分离+主从同步。
redis可存储五种类型数据:String、List、Set、SortedSet、Hash。
redis对是数据的存储只接受byte[]和String,如果保存数据到redis,就必须把对象转换成这两种类型,通常数据量小的情况下选择数组,采用数组节点流+对象流;数据量大的情况下使用json字符串。
我体现的是原生的存储过程
1.数组
1.1创建项目,依赖jedis和Junit
1.2创建实体类
1.3创建工具类BinaryUtils 封装序列化+反序列化方法

	public class ByteOfObject {
	//对象转换成数组的方法
	public static byte[] objToBuf(Object obj){
		byte[] value=null;
		try {
   //创建数组流
			ByteArrayOutputStream bos=new ByteArrayOutputStream();
			//创建对象输出流
			ObjectOutputStream oos = new ObjectOutputStream(bos);
			//将对象写入
			oos.writeObject(obj);
			//获取装着对象的数组
			value= bos.toByteArray();
			//刷到数组里
			oos.flush();
			//关闭
			oos.close();
			bos.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return value;
	}
	
	//反序列化方法
	 public static <T> T BufToObj(byte[] buf,Class<T> type){
		 T readObject=null;
			//反序列化
			try {
				ByteArrayInputStream bis=new ByteArrayInputStream(buf);
				ObjectInputStream oos = new ObjectInputStream(bis);
				readObject =(T) oos.readObject();
				oos.close();
				bis.close();
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			return readObject;
	 }
}

1.4测试

	public class Test01 {
	@Test
	public void testHash(){
		Jedis j = new Jedis("192.168.242.98",6379);
		j.auth("123456");
		//选择库
		j.select(3);
		Product product = new Product(10, "方便面", "10");
		//指定Key
		byte[] key=product.getId().toString().getBytes();
		//指定值
		byte[] value=null;
		//序列化返回的数组
		value = ByteOfObject.objToBuf(product);
		//保存
		j.set(key, value);
		//key对应的值
		byte[] bs = j.get(key);
		
		/*System.out.println(Arrays.toString(bs));*/
		//反序列化
		Product bufToObj = ByteOfObject.BufToObj(value, Product.class);
		System.out.println(bufToObj);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值