`
liuxinglanyue
  • 浏览: 548145 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用Jredis做的小例子(入门级)

阅读更多

redis入门级例子:

 

package com.liuxinglanyue.test;

import java.util.ArrayList;
import java.util.List;

import org.jredis.JRedis;
import org.jredis.RedisException;
import org.jredis.ri.alphazero.JRedisClient;
import org.jredis.ri.alphazero.support.DefaultCodec;
import org.junit.Test;

public class Demo 
{
	@Test
	public void addOne()
	{
		JRedis jredis = new JRedisClient("192.168.1.106", 6379);
		try {
			jredis.ping();
		} catch (RedisException e) {
			System.out.println("不能ping通");
			e.printStackTrace();
			jredis.quit();
		}
		
		/*
		 * 构造一个User对象
		 */
		User user = new User();
		user.setName("liuxinglanyue");
		user.setPass("liuxinglanyue");
		List<Image> imageList = new ArrayList<Image>();
		for(int i=0; i<2; i++)
		{
			Image image = new Image();
			image.setUrl("Image url "+i);
			imageList.add(image);
		}
		user.setImageList(imageList);
		
		/*
		 * 向redis中加入数据
		 */
		try {
			jredis.sadd("userOne", user);
			System.out.println("添加成功!");
		} catch (RedisException e) {
			e.printStackTrace();
		} finally{
			jredis.quit();
		}
	}
	@Test
	public void show()
	{
		JRedis jredis = new JRedisClient("192.168.1.106", 6379);
		try {
			jredis.ping();
		} catch (RedisException e) {
			System.out.println("不能ping通");
			e.printStackTrace();
			jredis.quit();
		}
		
		
		try {
			List<User> user = DefaultCodec.decode(jredis.smembers("userOne"));
			for(User u : user)
			{
				System.out.print("Name:"+u.getName());
				System.out.print("  Password:"+u.getPass());
				List<Image> imageList = u.getImageList();
				for(Image image : imageList)
				{
					System.out.print("  ImageUrl:"+image.getUrl());
				}
				System.out.println();
			}
		} catch (RedisException e) {
			e.printStackTrace();
		} finally{
			jredis.quit();
		}
	}
	
	@Test
	public void addAll()
	{
		JRedis jredis = new JRedisClient("192.168.1.106", 6379);
		try {
			jredis.ping();
		} catch (RedisException e) {
			System.out.println("不能ping通");
			e.printStackTrace();
			jredis.quit();
		}
		
		/*
		 * 构造多个User对象
		 */
		for(int j=0; j<100; j++)
		{
			User user = new User();
			user.setName("liuxinglanyue"+j);
			user.setPass("liuxinglanyue"+j);
			List<Image> imageList = new ArrayList<Image>();
			for(int i=0; i<2; i++)
			{
				Image image = new Image();
				image.setUrl("Image "+j+" url "+i);
				imageList.add(image);
			}
			user.setImageList(imageList);
			
			/*
			 * 向redis中加入数据
			 */
			try {
				jredis.sadd("userOne", user);
				System.out.println("添加"+j+"成功!");
			} catch (RedisException e) {
				e.printStackTrace();
			}
		}
		jredis.quit();
	}
}
 

User类:

package com.liuxinglanyue.test;

import java.io.Serializable;
import java.util.List;

public class User implements Serializable
{
	private static final long serialVersionUID = 1L;
	
	private String name;
	private String pass;
	private List<Image> imageList;
	public String getName() 
	{
		return name;
	}
	public void setName(String name) 
	{
		this.name = name;
	}
	public String getPass() 
	{
		return pass;
	}
	public void setPass(String pass) 
	{
		this.pass = pass;
	}
	public List<Image> getImageList() 
	{
		return imageList;
	}
	public void setImageList(List<Image> imageList) 
	{
		this.imageList = imageList;
	}
}
 

Image类:

package com.liuxinglanyue.test;

import java.io.Serializable;

/*
 * 这里 Serializable 一定要加
 * 如果不加运行之前不报错,运行的时候就会报错
 */
public class Image implements Serializable
{
	private static final long serialVersionUID = 1L;
	
	private String url;

	public void setUrl(String url) 
	{
		this.url = url;
	}
	public String getUrl() 
	{
		return url;
	}
}
 

 

 

5
2
分享到:
评论
4 楼 liuxinglanyue 2011-03-28  
kingliu 写道
楼主你好,我测试你的代码,可是报错,还请解答一下,十分感谢:
这行:List<User> user = DefaultCodec.decode(jredis.smembers("userOne"));  报错:
Error decoding byte[] data to instantiate java object - data at key may not have been of this type or even an object。
全部报错信息如下:
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:197)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:160)
at com.redis.test.JredisTest.show(JredisTest.java:62)
at com.redis.test.JredisTest.main(JredisTest.java:137)
Exception in thread "main" java.lang.RuntimeException: Error decoding byte[] data to instantiate java object - data at key may not have been of this type or even an object
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:214)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:160)
at com.redis.test.JredisTest.show(JredisTest.java:62)
at com.redis.test.JredisTest.main(JredisTest.java:137)
Caused by: java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:197)
... 3 more

看下端口。
3 楼 kingliu 2011-03-28  
楼主你好,我测试你的代码,可是报错,还请解答一下,十分感谢:
这行:List<User> user = DefaultCodec.decode(jredis.smembers("userOne"));  报错:
Error decoding byte[] data to instantiate java object - data at key may not have been of this type or even an object。
全部报错信息如下:
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:197)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:160)
at com.redis.test.JredisTest.show(JredisTest.java:62)
at com.redis.test.JredisTest.main(JredisTest.java:137)
Exception in thread "main" java.lang.RuntimeException: Error decoding byte[] data to instantiate java object - data at key may not have been of this type or even an object
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:214)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:160)
at com.redis.test.JredisTest.show(JredisTest.java:62)
at com.redis.test.JredisTest.main(JredisTest.java:137)
Caused by: java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at org.jredis.ri.alphazero.support.DefaultCodec.decode(DefaultCodec.java:197)
... 3 more
2 楼 liuxinglanyue 2011-03-15  
happy90 写道
没有main方法,怎么运行

用的是 junit4
1 楼 happy90 2011-03-15  
没有main方法,怎么运行

相关推荐

Global site tag (gtag.js) - Google Analytics