一、操作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类型的数据,并且会介绍如何进行封装和单元测试。 首先,要与Redis进行交互,我们需要引入Jedis库,这是Java最常用的Redis客户端。在你的...
自己写的例子,Java连接 redis 测试了string,list set ,map类型,以及中文测试,都正常,资源解释:http://www.cnblogs.com/aspirant/p/6816180.html
本文档将详细介绍使用 Java 操作 Redis 的方法,包括基本命令、数据类型、string 操作、list 操作等。 一、基本命令 在使用 Java 操作 Redis 之前,需要了解基本的 Redis 命令。这些命令包括连接操作命令、持久化...
本文将深入探讨如何在Java环境中设置并使用Jedis连接Redis服务器,实现数据的读写操作。 首先,要开始使用Java与Redis连接,我们需要在项目中引入Jedis库。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖...
本文将深入探讨如何使用Java操作Redis的四种主要数据类型:字符串(String)、列表(List)、哈希(Hash)和集合(Set)。 首先,我们来看**字符串类型**(String)。在Redis中,字符串是最基础的数据类型,可以...
下面将详细讨论如何在Java中操作Redis,以及相关的关键知识点。 首先,为了在Java中操作Redis,我们需要一个Java客户端库。最常用的库之一是Jedis,它是由Redis官方推荐的Java客户端。Jedis提供了丰富的API,涵盖了...
在Java中,Jedis是官方推荐的客户端库,用于与Redis服务器通信。Jedis提供了丰富的API,可以实现对Redis所有数据结构的操作。首先,我们需要在项目中引入Jedis的依赖,通常在Maven项目中,可以在pom.xml文件中添加...
在Java开发中,Redis作为一个高性能的键值存储系统,常被用作缓存或数据库,其数据操作便捷高效。为了在不同的服务器之间迁移或者备份Redis中的数据,我们需要实现数据的导入与导出功能。本篇将详细介绍如何使用Java...
本文将深入探讨如何使用Java与Redis进行各种类型的操作,并基于Maven项目管理来构建我们的示例代码。 首先,为了在Java项目中使用Redis,我们需要引入Jedis库,这是一个流行的Java Redis客户端。在Maven项目的`pom....
在Windows环境下安装Redis并使用Java与其交互是一项常见的开发任务,特别是在构建分布式系统或者需要缓存管理的场景中。...通过学习和实践这些基本操作,你将能够灵活地在你的Java应用程序中运用Redis。
在Java中,我们可以将String对象的值直接作为Redis的键值对存储。例如,使用Jedis的`set`方法: ```java Jedis jedis = new Jedis("localhost"); jedis.set("key", "value"); ``` 2. **Hash(Map)**:Redis的...
Redis的命令可以分为五大类:string、hash、list、set和zset,每种类型都有其特定的操作命令。 string(字符串) Redis的string类型是最基本的数据类型,可以理解成与Memcached一样的类型,一个key对应一个value。...
在Java中操作Redis,我们通常会借助于一些客户端库,如Jedis、Lettuce等。本示例将重点讲解如何使用Java与Redis进行基本的增删改查操作。 1. **连接Redis** 在Java中,我们需要先导入相应的库,如Jedis,然后创建...
本篇文章将详细解析如何使用Java来调用Redis,以实现数据的存取操作。 首先,Java与Redis的交互通常通过Java Redis客户端库Jedis来实现。Jedis是Java社区广泛使用的Redis客户端,它提供了丰富的API,可以方便地完成...
本示例将详细介绍如何在Java中使用Redis操作四种基本数据类型:String、List、Set和Hash。 1. **String**: Redis中的String是最基础的数据类型,它可以存储简单的字符串,也可以用于计数。在Java中,我们使用Jedis...
在这个示例中,可能使用了序列化方法将Java对象(如String、Bean、List和Map)转化为字节数据存储在Redis中,并能反序列化回原对象。 2. **操作String**: Redis支持简单的键值对操作,String是最基础的数据类型。...
**Jedis:Java连接Redis的首选库** Jedis是Java开发者用来与Redis内存数据存储进行交互的客户端库。Redis是一个高性能的键值数据库,广泛应用于缓存、消息队列等多种场景。Jedis作为官方推荐的Java客户端,提供了...