电商系统中大量使用了大标签的功能,通过redis可以高效的实现这个功能。
package com.foxbill.redisinaction;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline;
import java.util.Set;
/**
* 标签系统
*/
public class Chapter15 {
static public void start(Jedis jedis) {
addTag(jedis);
getByTag(jedis);
}
//添加标签
private static void addTag(Jedis jedis) {
Pipeline ctx = jedis.pipelined();
//redis
String keyRedis="tag:redis";
String[] tagRedis={"nosql","database","cache","redis"};
ctx.sadd(keyRedis,tagRedis);
//mysql
String keyMysql="tag:mysql";
String[] tagMysql={"database","mysql"};
ctx.sadd(keyMysql,tagMysql);
//database
String keyDatabase = "tag:database";
String[] tagDatabase = {"mysql", "redis", "mongodb"};
ctx.sadd(keyDatabase, tagDatabase);
//nosql
String keyNosql="tag:nosql";
String[] tagNosql={"redis","mongodb"};
ctx.sadd(keyNosql,tagNosql);
ctx.sync();
}
//根据标签获取元素集合
private static void getByTag(Jedis jedis){
String keyDatabase = "tag:database";
Set<String> database = jedis.smembers(keyDatabase);
System.out.printf("database:%s\n", database);
}
}

被折叠的 条评论
为什么被折叠?



