1.Hash数据结构

Redis中的Hashes类型可以看成具有String KeyString Valuemap容器


2.Hash存储购物车数据的操作






3.java代码实现

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;

/**
 * 
 */

/**
 * <p>Title: RedisHashTest</p>
 * <p>Description: </p>
 * <p>Company: </p>
 * @author 夏 杰
 * @date 2015年12月14日 上午11:12:57
 * @vesion 1.0
*/
public class RedisHashTest {
	Jedis jedis = null;
	@Before
	public void before(){
		jedis = new Jedis("127.0.0.1",6379);
	}
	
	@After
	public void after(){
		jedis.disconnect();
	}
	
	/**
	 * 插入一条数据
	 * 
	 */
	@Test
	public void hset(){
		
		// 插入一条hash数据(购物车)到redis库中
		jedis.hset("cart:user00001", "深入理解JVM", "1");
		
	}
	
	/**
	 * 插入多条数据
	 */
	@Test
	public void hmset(){
		
		//一次性往已经存在的这条hash数据(购物车)中添加多个field-value对
		HashMap<String, String> productMap= new HashMap<String, String>();
		productMap.put("SpringMVC从入门到精通", "2");
		productMap.put("高级JS攻城狮宝典", "2");
		//hmset添加多条数据
		jedis.hmset("cart:user00001", productMap);
		
	}
	
	/**
	 * 只取出所有的key-value
	 */
	@Test
	public void hgetAll(){
		
		//从购物车中获取指定用户的,所有的商品及其数量
		Map<String, String> catMap = jedis.hgetAll("cart:user00001");
		Set<Entry<String, String>> entrySet = catMap.entrySet();
		
		System.out.println("----------取出购物篮中的商品及数量信息---------");
		for(Entry<String, String> entry:entrySet){
			
			System.out.println(entry.getKey() +":" +entry.getValue());
			
		}
		
	}
	
	
	/**
	 * 只取出所有的keys
	 */
	@Test
	public void hkeys(){
		
		System.out.println("----------只取出购物篮中的商品列表---------");
		// 从购物车中获取所有的商品
		Set<String> products = jedis.hkeys("cart:user00001");
		
		for(String p:products){
			System.out.println(p);
		}
		
	}
	
	
	
	
}


输出结果













Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐