Redis命令拾遗四(集合类型)—包含简单搜索筛选…
2018-06-22 07:34:50来源:未知 阅读 ()
本文版权,归博客园和作者吴双共同所有。转载和爬虫请注明博客园蜗牛Redis系列文章地址 http://www.cnblogs.com/tdws/tag/NoSql/
单个集合中最多允许存储2的三十二次方减1个元素。内部使用hash table散列表实现。
SADD Key members.....,向集合中增加多个元素,返回成功个数。另外由于集合中不允许有重复元素,所以当添加重复元素时,会忽略不计,当然也不计影响个数。
SMEMBERS Key 获取目标集合Key下的所有元素。
SREM Key members 从目标集合中移除多个元素。
SISMEMBER Key Member,判断指定元素 是否在指定集合中存在。时间复杂度O(1)
首先提醒一点,多个集合运算,是按照顺序,一路算下去的结果。
SDIFF Keys计算差集。
请注意Result位置,和两次差集结果Result。
SINTER Keys 计算并集。注意Result位置。
SUNION 计算交集。
比如在天猫或者京东当中,筛选商品,你想要七天包退换,货到付款,可分期这样的商品。我们先把这样的标记叫做标签(Tag),
GoodsId | GoodsTag |
Goods:1 | 新上架马蓉版充XX娃 |
Goods:2 | 新上架《淘宝这十年XXX》 |
Goods:3 | 新上架VR眼镜 |
Tag:Id | Tag:Name |
Tag:1 | 七天包退换 |
Tag:2 | 货到付款 |
Tag:3 | 可分期 |
Tag:Id | Goods:Id |
Tag:1 | Goods:1,Goods:2,Goods:3 |
Tag:2 | Goods:1.Goods:2 |
Tag:3 | Goods:1 |
那么我们需要维护并设计的Redis数据“存储结构”如上,三个“表”。当然这是我的随意设计,还算是比较合理。并不了解人家JD,ALi是如何设计的。那么现在你就可以对你需要的符合七天包退换,货到付款,可分期这三种Tag的商品进行筛选咯。很显然,解决办法就是计算最后一个表的,Tag1,Tag2,Tag3这三种标签所拥有的商品Id的并集,并集之后的结果也就是Goods:1,对应的商品是“新上架马蓉版充XX娃”。
值得注意的是,NoSql中的设计思路,和关系型数据库稍有不同,多思考使用场景,对转换思想好处多多。
欢迎关注,蜗牛将持续发博分享,明天将会补充集合命令,下一篇将会简单介绍有序集合,如果你学会了这个简单的设计,请为自己点赞!
集合命令补充http://www.cnblogs.com/tdws/p/5789440.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Redis命令拾遗二(散列类型)
- VS初始化命令 ASP.NET常用技巧 2019-09-08
- 高性能TcpServer - 3.命令通道(处理:掉 2019-07-24
- 安装Redis(Windows版) 2019-07-23
- Git命令 2018-09-19
- NopCommerce学习(1) Caching 2018-07-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash