Redis从零开始由浅入深(二)

本文是Redis从零开始系列的第二篇,主要介绍如何在Java项目中使用Jedis驱动进行Redis操作,包括字符串、列表和对象类型的序列化操作。建议封装Util类以简化操作。
摘要由CSDN通过智能技术生成

上一篇:Redis从零开始由浅入深(一)已经介绍了Redis的基本安装以及使用,这篇将讲解Redis在java中的使用

1.创建项目 2.下载jedis.jar驱动包 3.在项目中添加jedis.jar
字符串操作
 @Test
    public void test(){
        Jedis jedis = new Jedis("localhost",6379);
        //可以ping一下看看通不通
        System.out.println(jedis.ping());
        //等价于客服端 set name value
        jedis.set("name","张杰");
        jedis.close();
    }
    @Test
    public void test1(){
        Jedis jedis = new Jedis("localhost",6379);
        System.out.println(jedis.ping());
        //get name
        System.out.println(jedis.get("name"));
        jedis.close();
    }
列表操作
@Test
    public void test2(){
        Jedis jedis = new Jedis("localhost",6379);
        System.out.println(jedis.ping());
        //等价于客服端 rpush names xxx
       jedis.rpush("names","焊接");
        jedis.rpush("names","张杰");
        jedis.rpush("names","焊下澳门");
        jedis.rpush("names","小狗");
        jedis.rpush("names","不必");
        jedis.close();
    }
    @Test
    public void test3(){
        Jedis jedis = new Jedis("localhost",6379);
        System.out.println(jedis.ping());
        List<String> lists = jedis.lrange("names",0,-1);
        for (String a:lists
             ) {
            System.out.println(a);
        }
    }
对象类型,可以选择哈希(但是字段较多,强转复杂),但是我这里讲对象序列化
@Test
    public void test4() throws IOException {
        Jedis jedis = new Jedis("localhost",6379);
        //下边的User必须实现Serializable
        User user = new User(1,"张杰","8848");
        //将User写入redis
        //先将对象序列化,然后将序列化的结果写入redis
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(out);
        oos.writeObject(user);//将对象序列化写出
        //将序列化结果写入redis
       byte[] bytes =  out.toByteArray();
       jedis.set("user".getBytes(),bytes);
       out.close();
       oos.close();
    }
    @Test
    public void test5() throws Exception {
        Jedis jedis = new Jedis("localhost",6379);
        //从Redis取出序列化结果
       byte[] bytes = jedis.get("user".getBytes());
       //将序列化结果,反序列化转成User对象
       ByteArrayInputStream in = new ByteArrayInputStream(bytes);
       ObjectInputStream inputStream = new ObjectInputStream(in);
      User user = (User) inputStream.readObject();
      System.out.println(user);
    }
集合,打开ArrayList的源码,发现ArrayList是可以序列化的,所以可以参照上面的序列化操作,觉得繁琐,是不是可以自己封装成一个Util啊。
public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
    private static final long serialVersionUID = 8683452581122892189L;

    /**
     * Default initial capacity.
     */
    private static final int DEFAULT_CAPACITY = 10;

    /**
     * Shared empty array instance used for empty instances.
     */
    private static final Object[] EMPTY_ELEMENTDATA = {};
转载注明出处

上一篇:Redis从零开始由浅入深(一)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值