`

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的set和get,并且提供封装和Junit测试类,方便快捷的实现java对redis进行操作。

    Redis java连接 list,string set map

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

    Java操作Redis详细介绍

    主要介绍了Java操作Redis详细介绍,涉及对key的操作,string数据类型,list数据类型等相关内容,具有一定参考价值,需要的朋友可以了解下。

    spring-batch-redis:Redis的Spring Batch扩展

    哈希: HGETALL → Map&lt;String&gt; 列表: LRANGE → List&lt;String&gt; 设置: SMEMBERS → Set&lt;String&gt; 流: XRANGE → List&lt;StreamMessage&gt;&gt; 字符串: GET → String 排序集: ZRANGE → List&lt;ScoredValue&lt;...

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

    在Windows环境下java使用Redis代码实例,内含redis在Windows下的详细安装教程及针对String,map,list,set等使用详细的实例!

    Redis部署笔记(单机+主从+哨兵+集群)

    ● 把Redis的Map封装成RedisMap类(key强制为String),暴露API模仿Java的Map ● 把Redis的Set封装成RedisSet类,暴露API模仿Java的Set ● 把Redis的List封装成RedisList类,暴露API模仿Java的List ● 把Redis的单...

    Java+MySQL+redis缓存

    案例中数据来自MySQL数据库,对查询出来的数据缓存到redis,redis缓存工具可以将缓存string,bean,list,map等类型,代码中有详细的注释,而且还将要缓存的数据进行了序列化,大家可以借鉴,进而更改成自己想要的格式...

    redis 操作文档

    redis 安装及JAVA 调用,操作String、Map、List等命令

    JAVA整合JEDIS操作访问Redis的工具类

    JAVA整合JEDIS操作访问Redis的工具类,可以拿去直接用。里面包括REDIS连接池的处理,增删改查REDIS数据的封装,支持MAP/LIST/STRING等多种类型的存取

    java redis demo

    使用jedis连接池建立redis连接,封装了使用序列化方法存储,获取,删除string,Bean,List,Map&lt;,&gt;的方法,还有非序列化的Hash存储方法,另有单独的测试类

    免费分享 Java面试笔记 面试八股文 计算机网络基础

    Java基础:Java概念、基础语法、面向对象的理解、String类、Object类、序列化、泛型、注解与反射、JDK1.8新特性等;Java集合:List底层实现、Map底层实现等;Java并发编程:ThreadLocal、Java内存模型、锁、并发工具...

    Redis面试题.pdf

    Redis通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Map)、列表(list)、集合(sets)、有序集合(sorted sets)等类型。 Redis是一个key-value存储系统,它支持丰富的数据类型,这些数据类型...

    Redis_Window

    redis的数据类型有:字符串(string)、哈希(Map)、列表(list)、集合(sets)和有序集合(sorted sets)等数据类型。 redis与其他key-value缓存产品有三个特点: 1、redis支持持久化、可以将内存里面的数据...

    Redis 列表(List)

    Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 – 1 个元素 (4294967295, 每个列表超过40亿个元素)。 ...

    java RedisUtil工具类

    该工具类是包含:redis String,map,set,list 4种数据类型的常用操作方法。

    Jodis:Jodis,Java对象字典服务器,就像Redis一样

    Jodis(Java对象字典服务器) Jodis是一个基于内存的NoSQL键值数据库,支持独立部署和嵌入式使用。 总览 内存kv数据库 数据读写基于内存。 支持多种数据结构 用于存储普通的串口,可以基于java.lang.String。 列表...

    redis工具类

    redis工具类,包含jedis对象生成和清除资源、string、list、map等主要类型的公共方法

    Centos7下安装redis

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-...它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

    PHP-7.0-redis扩展文件

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-...它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

    redis-4.0.10.tar.gz

    它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 可以自动备份 优势 :性能极高 – Redis能读的速度是110000次/s,写的...

Global site tag (gtag.js) - Google Analytics