您的位置:首页 > 数据库 > Redis

Redis的hash数据类型及其应用场景解析---购物车

2015-12-14 14:10 731 查看

1.Hash数据结构

Redis中的Hashes类型可以看成具有String Key和String Value的map容器



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);
}

}

}


输出结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: