`

java操作redis: 将string、list、map、自定义的对象保存到redis中

阅读更多
一、操作string 、list 、map 对象
1、引入jar:
jedis-2.1.0.jar
 
2、代码
/**
     *  @param args
     */
     public  static  void main(String[] args) {
        
        //连接redis服务
    Jedis jedis =  new Jedis("192.168.88.15",6379);
        
        //密码验证-如果你没有设置redis密码可不验证即可使用相关命令
//        jedis.auth("abcdefg");
        
        //简单的key-value 存储
        jedis.set("redis", "myredis");
        System.out.println(jedis.get("redis"));
        
        //在原有值得基础上添加,如若之前没有该key,则导入该key
        //之前已经设定了redis对应"myredis",此句执行便会使redis对应"myredisyourredis"
        jedis.append("redis", "yourredis");   
        jedis.append("content", "rabbit");
        
        //mset 是设置多个key-value值   参数(key1,value1,key2,value2,...,keyn,valuen)
        //mget 是获取多个key所对应的value值  参数(key1,key2,key3,...,keyn)  返回的是个list
        jedis.mset("name1","yangw","name2","demon","name3","elena");
        System.out.println(jedis.mget("name1","name2","name3"));
        
        //map
        Map<String,String> user =  new HashMap<String,String>();
        user.put("name", "cd");
        user.put("password", "123456");
        //map存入redis
        jedis.hmset("user", user);
        //mapkey个数
        System.out.println(String.format("len:%d", jedis.hlen("user")));
        //map中的所有键值
        System.out.println(String.format("keys: %s", jedis.hkeys("user") ));
        //map中的所有value
        System.out.println(String.format("values: %s", jedis.hvals("user") ));
        //取出map中的name字段值
        List<String> rsmap = jedis.hmget("user", "name","password");
        System.out.println(rsmap);
        //删除map中的某一个键值 password
        jedis.hdel("user", "password");
        System.out.println(jedis.hmget("user", "name", "password"));
        
        //list
        jedis.del("listDemo");
        System.out.println(jedis.lrange("listDemo", 0, -1));
        jedis.lpush("listDemo", "A");
        jedis.lpush("listDemo", "B");
        jedis.lpush("listDemo", "C");
        System.out.println(jedis.lrange("listDemo", 0, -1));
        System.out.println(jedis.lrange("listDemo", 0, 1));
        
        //set
        jedis.sadd("sname", "wobby");
        jedis.sadd("sname", "kings");
        jedis.sadd("sname", "demon");
        System.out.println(String.format("set num: %d", jedis.scard("sname")));
        System.out.println(String.format("all members: %s", jedis.smembers("sname")));
        System.out.println(String.format("is member: %B", jedis.sismember("sname", "wobby")));
        System.out.println(String.format("rand member: %s", jedis.srandmember("sname")));
        //删除一个对象
        jedis.srem("sname", "demon");
        System.out.println(String.format("all members: %s", jedis.smembers("sname")));        
    }
 
二、将自定义对象保存到redis中: 
 
1、自定义pojo 实现Serializable 接口:
 
package cn.mingyuan.redis;
 
import java.io.Serializable;
 
/**
 * 测试用pojo,实现了Serializable,以便进行系列化操作
 * 
 *  @author mingyuan
 * 
 */
public class Person implements Serializable {
     private  static  final  long serialVersionUID = -3562550857760039655L;
 
    
     private String name;
     private  int age;
 
     public Person(){}
     public Person(String name,  int age) {
         super();
         this.name = name;
         this.age = age;
    }
     public String getName() {
         return name;
    }
 
     public  void setName(String name) {
         this.name = name;
    }
 
     public  int getAge() {
         return age;
    }
 
     public  void setAge( int age) {
         this.age = age;
    }
    @Override
     public String toString() {
         return "Person [name=" + name + ", age=" + age + "]";
    }
 
}
 
2、测试类:
 
package cn.mingyuan.redis;
 
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
 
import redis.clients.jedis.Jedis;
 
public class Test {
 
    /**
     *  @param args
     *  @throws IOException
     *  @throws ClassNotFoundException
     */
     public  static  void main(String[] args)  throws IOException,
            ClassNotFoundException {
//        Jedis redis = new  Jedis("192.168.88.15");
        Jedis redis =  new Jedis("192.168.88.15", 6379);
        // connect可以不要,因为在执行set操作的时候会先进行判断客户端是否于服务器端建立了连接,若无,则启动连接过程
        redis.connect();
        String set = redis.set("mingyuan", "1");
        System.out.println(" set result \t" + set);
        redis.incr("mingyuan");
        String string = redis.get("mingyuan");
        System.out.println(" get result of key 'mingyuan' \t" + string);
 
        // 下面是对对象进行存储的测试代码
        ByteArrayOutputStream bos =  new ByteArrayOutputStream();
        ObjectOutputStream oos =  new ObjectOutputStream(bos);
        
        Person person =  new Person("liudehua" ,22);
        oos.writeObject(person);
         byte[] byteArray = bos.toByteArray();
        oos.close();
        bos.close();
        String setObjectRet = redis.set("mingyuan".getBytes(), byteArray);
        System.out.println(" set object return \t" + setObjectRet);
 
         byte[] bs = redis.get("mingyuan".getBytes());
 
        ByteArrayInputStream bis =  new ByteArrayInputStream(bs);
        ObjectInputStream inputStream =  new ObjectInputStream(bis);
        Person readObject = (Person) inputStream.readObject();
        System.out.println(" read object \t" + readObject.toString());
        inputStream.close();
        bis.close();
 
        redis.disconnect();
 
    }
 
}
 
 
 
 
 
 
 
 
 
分享到:
评论

相关推荐

    Java操作Redis,实现String、List、Map的set和get

    本文将深入探讨如何使用Java来操作Redis,包括设置和获取String、List和Map类型的数据,并且会介绍如何进行封装和单元测试。 首先,要与Redis进行交互,我们需要引入Jedis库,这是Java最常用的Redis客户端。在你的...

    Redis java连接 list,string set map

    自己写的例子,Java连接 redis 测试了string,list set ,map类型,以及中文测试,都正常,资源解释:http://www.cnblogs.com/aspirant/p/6816180.html

    java操作redis.docx

    本文档将详细介绍使用 Java 操作 Redis 的方法,包括基本命令、数据类型、string 操作、list 操作等。 一、基本命令 在使用 Java 操作 Redis 之前,需要了解基本的 Redis 命令。这些命令包括连接操作命令、持久化...

    Redis:使用Java与redis连接

    本文将深入探讨如何在Java环境中设置并使用Jedis连接Redis服务器,实现数据的读写操作。 首先,要开始使用Java与Redis连接,我们需要在项目中引入Jedis库。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖...

    Java操作Redis的多种数据类型

    本文将深入探讨如何使用Java操作Redis的四种主要数据类型:字符串(String)、列表(List)、哈希(Hash)和集合(Set)。 首先,我们来看**字符串类型**(String)。在Redis中,字符串是最基础的数据类型,可以...

    java操作redis

    下面将详细讨论如何在Java中操作Redis,以及相关的关键知识点。 首先,为了在Java中操作Redis,我们需要一个Java客户端库。最常用的库之一是Jedis,它是由Redis官方推荐的Java客户端。Jedis提供了丰富的API,涵盖了...

    java操作redis数据库实例

    在Java中,Jedis是官方推荐的客户端库,用于与Redis服务器通信。Jedis提供了丰富的API,可以实现对Redis所有数据结构的操作。首先,我们需要在项目中引入Jedis的依赖,通常在Maven项目中,可以在pom.xml文件中添加...

    java 对Redis的导入和导出

    在Java开发中,Redis作为一个高性能的键值存储系统,常被用作缓存或数据库,其数据操作便捷高效。为了在不同的服务器之间迁移或者备份Redis中的数据,我们需要实现数据的导入与导出功能。本篇将详细介绍如何使用Java...

    java redis 各类型操作实例

    本文将深入探讨如何使用Java与Redis进行各种类型的操作,并基于Maven项目管理来构建我们的示例代码。 首先,为了在Java项目中使用Redis,我们需要引入Jedis库,这是一个流行的Java Redis客户端。在Maven项目的`pom....

    Windows环境下安装Redis和java使用Redis的Demo

    在Windows环境下安装Redis并使用Java与其交互是一项常见的开发任务,特别是在构建分布式系统或者需要缓存管理的场景中。...通过学习和实践这些基本操作,你将能够灵活地在你的Java应用程序中运用Redis。

    redis-objects:将Redis用作Java对象(Map,Set,String ...)

    在Java中,我们可以将String对象的值直接作为Redis的键值对存储。例如,使用Jedis的`set`方法: ```java Jedis jedis = new Jedis("localhost"); jedis.set("key", "value"); ``` 2. **Hash(Map)**:Redis的...

    基于Spark的机器学习资料63、后台服务工具redis:详解redis操作命令.pdf

    Redis的命令可以分为五大类:string、hash、list、set和zset,每种类型都有其特定的操作命令。 string(字符串) Redis的string类型是最基本的数据类型,可以理解成与Memcached一样的类型,一个key对应一个value。...

    java redis增删改查样例

    在Java中操作Redis,我们通常会借助于一些客户端库,如Jedis、Lettuce等。本示例将重点讲解如何使用Java与Redis进行基本的增删改查操作。 1. **连接Redis** 在Java中,我们需要先导入相应的库,如Jedis,然后创建...

    【收集】Java调用Redis 入门级Demo

    本篇文章将详细解析如何使用Java来调用Redis,以实现数据的存取操作。 首先,Java与Redis的交互通常通过Java Redis客户端库Jedis来实现。Jedis是Java社区广泛使用的Redis客户端,它提供了丰富的API,可以方便地完成...

    Redis在java中的使用示例

    本示例将详细介绍如何在Java中使用Redis操作四种基本数据类型:String、List、Set和Hash。 1. **String**: Redis中的String是最基础的数据类型,它可以存储简单的字符串,也可以用于计数。在Java中,我们使用Jedis...

    java redis demo

    在这个示例中,可能使用了序列化方法将Java对象(如String、Bean、List和Map)转化为字节数据存储在Redis中,并能反序列化回原对象。 2. **操作String**: Redis支持简单的键值对操作,String是最基础的数据类型。...

    jedis(java连接redis)

    **Jedis:Java连接Redis的首选库** Jedis是Java开发者用来与Redis内存数据存储进行交互的客户端库。Redis是一个高性能的键值数据库,广泛应用于缓存、消息队列等多种场景。Jedis作为官方推荐的Java客户端,提供了...

Global site tag (gtag.js) - Google Analytics