Java操作Redis完成特定的组合查询
来源:互联网 发布:汽车修理结算软件 编辑:程序博客网 时间:2024/05/21 09:20
对于频繁查询的数据,可以设置特定的查询业务,使用Redis的Set集合中的交集、并集、差集来实现指定的组合查询。
本文要实现查询产品Product中,品牌名称为“yh”并且产品分类为1的产品信息。
清空Redis数据库
Product实体类
package com.cb.entity;public class Product {private int id;private String name;//产品名称private String brand;//品牌private int category;//所属分类public Product(int id, String name, String brand, int category) {super();this.id = id;this.name = name;this.brand = brand;this.category = category;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getCategory() {return category;}public void setCategory(int category) {this.category = category;}@Overridepublic String toString() {return "Product [id=" + id + ", name=" + name + ", brand=" + brand + ", category=" + category + "]";}}
MyRedis类
package com.cb.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import com.cb.entity.Product;import net.sf.json.JSONObject;import redis.clients.jedis.Jedis;public class MyRedis {public static void main(String[] args) {//查询业务,产品表final String PRODUCT_TABLE="PRODUCT_TABLE";//查询业务,品牌为yh的产品final String PRODUCT_TABLE_BRAND_yh="PRODUCT_TABLE_BRAND_yh";//查询业务,产品分类为1的产品final String PRODUCT_TABLE_CATEGORY_1="PRODUCT_TABLE_CATEGORY_1";Jedis jedis=new Jedis("192.168.0.202", 6379);Map<String,String> map=new HashMap<String,String>();Product p1=new Product(1,"product01","yh",1);map.put("1",JSONObject.fromObject(p1).toString());//首先将Product对象转为json对象,再将其转为json串jedis.sadd(PRODUCT_TABLE_BRAND_yh,"1" );//向Redis中Set集合PRODUCT_TABLE_BRAND_yh添加元素jedis.sadd(PRODUCT_TABLE_CATEGORY_1,"1" );//向Redis中Set集合PRODUCT_TABLE_CATEGORY_1添加元素Product p2=new Product(2,"product02","yh",2);map.put("2",JSONObject.fromObject(p2).toString());jedis.sadd(PRODUCT_TABLE_BRAND_yh,"2" );Product p3=new Product(3,"product03","qrzy",1);map.put("3",JSONObject.fromObject(p3).toString());jedis.sadd(PRODUCT_TABLE_CATEGORY_1,"3" );jedis.hmset("PRODUCT_TABLE", map);Set<String> sinterSet=jedis.sinter(PRODUCT_TABLE_BRAND_yh,PRODUCT_TABLE_CATEGORY_1);for(Iterator iter=sinterSet.iterator();iter.hasNext();){String idString=(String) iter.next();System.out.println("PRODUCT_TABLE_BRAND_yh与PRODUCT_TABLE_CATEGORY_1的交集元素="+idString);String productInfo=jedis.hget(PRODUCT_TABLE,idString);System.out.println(idString+"对应的商品信息:"+productInfo);}}}
run as --java application
查看Redis中相关信息如下图:
查看Eclipse的console中输出信息如下图:
阅读全文
0 0
- Java操作Redis完成特定的组合查询
- java操作es的多条件组合精确查询BoolQuery
- 使用Hibernate Criteria完成灵活的组合查询
- LINQ查询操作--组合
- Hibernate查询—利用HQL完成表的查询操作
- Hibernate查询—利用Criteria完成表的查询操作
- Hibernate.Criteria完成多件条组合分页查询
- OSB之在OEPE的IDE中实现封装服务并完成特定操作
- spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作
- java对redis的操作
- java对redis的操作
- Java对Redis的操作
- 查询异步操作是否完成
- JAVA-JDBC完成CRUD的操作进阶
- 【SQLServer】-如何实现定义变量,完成数据库的查询操作
- Java 组合查询
- java组合条件查询
- redis【java操作redis】
- MIME类型
- Linux 常用命令
- Hugepages你用了吗?----原理概念篇
- 比特币的救赎还是毁灭?比特币期货对散户是利还是弊?
- SQL Server创建表语句介绍
- Java操作Redis完成特定的组合查询
- Ehcache配置详解及CacheManager使用
- 鼠标事件
- Linux下HugePage内存功能配置
- CentOS 7 下安装 Nginx
- VR应用开发需要什么知识?
- SQL查询重复字段
- 常见View特别是WebView引发内存泄漏解决办法
- 基于Linux环境下的jmeter分布式部署