Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 sorted set(有序集合)。
Hash数据结构
Redis中的Hash类型可以看成具有String Key和String Value的map容器
1、往redis库中插入一条hash类型的数据
redis> hset key field value
举例:
redis 127.0.0.1:6379> hset user001:zhangsan iphone 6
(integer) 1
redis 127.0.0.1:6379> hset user001:zhangsan xiaomi 7
(integer) 1
redis 127.0.0.1:6379> hset user001:zhangsan meizu 8
(integer) 1
在redis库中就形成了这样一条数据:
2、从redis库中获取一条hash类型数据的value
取出一条hash类型数据中所有field-value对
redis 127.0.0.1:6379> hgetall user001:zhangsan
1) "iphone"
2) "6"
3) "xiaomi"
4) "7"
5) "meizu"
6) "8"
取出hash数据中所有fields
redis 127.0.0.1:6379> hkeys user001:zhangsan
1) "iphone"
2) "xiaomi"
3) "meizu"
取出hash数据中所有的value
redis 127.0.0.1:6379> hvals user001:zhangsan
1) "6"
2) "7"
3) "8"
取出hash数据中一个指定field的值
redis 127.0.0.1:6379> hget user001:zhangsan xiaomi
"7"
为hash数据中指定的一个field的值进行增减
redis 127.0.0.1:6379> hincrby user001:zhangsan xiaomi 1
(integer) 8
从hash数据中删除一个字段field及其值
redis 127.0.0.1:6379> hgetall user001:zhangsan
1) "iphone"
2) "6"
3) "xiaomi"
4) "7"
5) "meizu"
6) "8"
redis 127.0.0.1:6379> hdel user001:zhangsan iphone
(integer) 1
redis 127.0.0.1:6379> hgetall user001:zhangsan
1) "xiaomi"
2) "7"
3) "meizu"
4) "8"
应用场景:购物车案例
public class BuyCartServiceImpl {
private Jedis jedis = null;
@Before
public void init(){
jedis = new Jedis("192.168.2.70",6379);
}
// 添加商品到购物车
@Test
public void testAddItemToCart(){
jedis.hset("cart:user02", "小米沙发", "1");
jedis.hset("cart:user02", "苹果手机", "2");
jedis.hset("cart:user02", "格力空调", "4");
jedis.close();
}
// 遍历购物车信息
@Test
public void testGetCartInfo(){
Map<String, String> cart = jedis.hgetAll("cart:user02");
Set<Entry<String, String>> entrySet = cart.entrySet();
for(Entry<String, String> ent :entrySet){
System.out.println(ent.getKey()+ ":" + ent.getValue());
}
jedis.close();
}
// 更改购物车
@Test
public void editCart(){
//给蜡烛商品项的数量加1
jedis.hincrBy("cart:user02", "小米沙发", 1);
jedis.close();
}
// 从购物车中删除商品项
@Test
public void delItemFromCart(){
jedis.hdel("cart:user02", "苹果手机");
jedis.close();
}
}
从上面可见,用redis做购物车简直太方便了。版权声明:本文为weixin_42472048原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。