1.hash 数据类型是大key ,然后小key(fied),然后value
2.业务:商品详情添加缓存,缓存不能设置永久缓存,因为redis缓存是放在内存中的,给每个商品添加一个缓存,设置永不过期那么内存就会爆炸了,可以添加缓存然后设置过期时间就可以了。但是这样就不能使用hash这种数据类型了,因为hash是一个大key,下面各种小key,如下图所示,CONTENT_LIST是商品类型,也就是大key,与它并列可能有订单类型等等其他的分类,商品分类下面存了各种商品,商品id是小key。
在这种业务场景下也就是需要设置某个商品过期(小key),而不是整个商品组缓存过期,但是redis没有只设置小key过期而大key不过期的api.只有设置大key过期,也就是设置整个商品分类都过期,所以不能使用hash数据类型。
现在就只能使用String类型,使用hash类型主要是为了方便存储分类,但是使用String类型就无法分类了,这时候可以给key值前缀以达到分类的目的,以商品id作为key(要加上前缀防止重复以及分类),value就是商品内容
key值使用:的话,在图形化界面中就会以文件夹形式展示,达到分类的效果
3.hash数据类型部分操作:
设置值:hset hash1 f1 aaa hash1(大key) f1(小key)
看某个key是否存在hexists hash1 f1,返回1就是存在,0就是不存在
代码:
查看某个大key下面所有的小key hkeys CART:1(CART:1是大key)
查看某个大key下面所有的值 hvals CART:1
既查key也查value (hgetall CART:1),一个key一个value
hash1是大key,f1,f2,f3都是小key