redis操作测试

package com.transn;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.data.redis.core.ZSetOperations.TypedTuple;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import com.alibaba.fastjson.JSON;
import com.transn.common.rediscache.CacheOperator;
import com.transn.common.redislock.SimpleRedisLockFactoryBean;
import com.transn.customer.dao.CustomerMapper;
import com.transn.customer.model.Customer;
import com.transn.customer.model.Invoice;
import com.transn.message.model.MessageContent;
import com.transn.message.model.MessageInfo;
import com.transn.tr.sys.model.SysLan;
import com.transn.tr.sys.model.SysPriceRange;
import com.transn.tr.user.model.TruserInfo;

@SuppressWarnings("deprecation")
@RunWith(SpringJUnit4ClassRunner.class) // 整合
@ContextConfiguration(locations={"classpath:spring.xml","classpath:spring-mybatis.xml"})
@TransactionConfiguration(defaultRollback = false)
@Transactional
public class RedisTest {
	@Autowired
    private StringRedisTemplate stringRedisTemplate;
	
	//试试注入这个lockFactory
/*	@Resource
	private IRedisLockFactoryBean lockFactory;*/
	@Resource
	private SimpleRedisLockFactoryBean lockFactory;
	
	@Resource(name= "stringRedisTemplate")
	private ValueOperations opsForValue;
	
    @Resource(name= "stringRedisTemplate")
    private HashOperations opsForHash;
    
    @Resource(name= "stringRedisTemplate")
    private ListOperations opsForList;

    @Resource(name= "stringRedisTemplate")
    private SetOperations opsForSet;

    @Resource(name= "stringRedisTemplate")
    private ZSetOperations opsForZSet;

   
	@Resource
	private CustomerMapper mapper;
	
	@Resource
	private CacheOperator cache;
	
	@Test
	public void cacheInitTest() throws Exception {
		cache.initPriceRangeToRedisCashe();
		cache.initSysLanToRedisCashe();
		cache.initTrAbilityToRedisCashe();
	}
	
	@Test
	public void cacheGetTest() throws Exception {
		SysLan sysLanFromRedisCashe = cache.getSysLanFromRedisCashe("en-GB");
		System.out.println(JSON.toJSONString(sysLanFromRedisCashe));
		String count = cache.getTrAbilityFromRedisCashe("zh-CN", "ja");
		System.out.println(count);
		Set priceRangeFromRedisCashe = cache.getPriceRangeFromRedisCashe("CNY");
		System.out.println(JSON.toJSONString(priceRangeFromRedisCashe));
	}
	
	@Test
	public void test() throws Exception {
/*		ValueOperations opsForValue = stringRedisTemplate.opsForValue();
		HashOperations opsForHash = stringRedisTemplate.opsForHash();
		ListOperations opsForList = stringRedisTemplate.opsForList();
		SetOperations opsForSet = stringRedisTemplate.opsForSet();
		ZSetOperations opsForZSet = stringRedisTemplate.opsForZSet();*/
		
		Invoice invoice3 = new Invoice();
		invoice3.setCid("WE60000000CU");
		invoice3.setAmount(798d);
		invoice3.setCurrency("USD");
		invoice3.setTag("烽火集团");
		invoice3.setType("1");
		invoice3.setContent("2");
		invoice3.setAddress("高新四路");
		String invoice3String = JSON.toJSONString(invoice3);	
		Boolean putIfAbsent = opsForHash.putIfAbsent("WETRANSN:INVOICE:CID", "WE60000000CU", invoice3String);
		System.out.println(putIfAbsent);
		String invoice = opsForHash.get("WETRANSN:INVOICE:CID", "WE60000000CU");
		Invoice parseObject = JSON.parseObject(invoice, Invoice.class);
		System.out.println(parseObject.getTag());
	}
	
	@Test
	public void testOpsForValue() throws Exception {
		//测试分布式锁和opsForValue
		Lock lock = lockFactory.createLock("WETRANSN:LOCK:TEST");
		try {
            lock.lock();
            Customer customer = new Customer();
            customer.setCid("WE20000000CU");
            customer.setNickname("龙井");
            customer.setPwd("123456");
            customer.setPhone("15527411803");
            customer.setEmail("[email protected]");
            customer.setCompanyName("传神语联网");
            customer.setBusiness("翻译软件");
            customer.setContacts("何恩培");
            customer.setInformation("027-59738888");
            customer.setcreateTime(1473734828l);
            customer.setLoginTime(1474943729l);
            customer.setSellId("WE16100036SA");
            customer.setCfrom("CHN");
            String customerString = JSON.toJSONString(customer);
            //mapper.insert(customer);
            
            opsForValue.set("WETRANSN:CUSTOMER", customerString);
            //设置"WETRANSN:CUSTOMER:CONTACTS"的值为"何恩培",30秒后失效
            opsForValue.set("WETRANSN:CUSTOMER:CONTACTS", "何恩培", 30, TimeUnit.SECONDS);
            //=======暂时不知道含义=======
            opsForValue.set("WETRANSN:CUSTOMER:PHONE", "15527411803", 5l);
            //=======暂时不知道含义=======
            Boolean setBit1 = opsForValue.setBit("WETRANSN:CUSTOMER:PWD1", 0L, true);
            System.out.println("setBit1:"+setBit1);
            //=======暂时不知道含义=======
            Boolean setBit2 = opsForValue.setBit("WETRANSN:CUSTOMER:PWD2", 0L, false);
            System.out.println("setBit2:"+setBit2);
            //=======暂时不知道含义=======
            Boolean getbit = opsForValue.getBit("WETRANSN:CUSTOMER:PWD2", 0l);
            System.out.println("getbit:"+getbit);
            
            //如果"WETRANSN:CUSTOMER"存在返回false;如果"WETRANSN:CUSTOMER"不存在,就存入reidis返回true
            Boolean setIfAbsent = opsForValue.setIfAbsent("WETRANSN:CUSTOMER2", customerString);
            System.out.println("setIfAbsent:"+setIfAbsent);     
            //获取"WETRANSN:CUSTOMER"的值
            String get = opsForValue.get("WETRANSN:CUSTOMER");
            System.out.println("get:"+get);
            //获取"WETRANSN:CUSTOMER:CID"的值串的[2,5]
            String get2 = opsForValue.get("WETRANSN:CUSTOMER:CID", 2l, 5l);
            System.out.println("get2:"+get2);
            //如果有“WE20000000CU”就返回“WE20000000CU”,并且赋值为“15527411803”
            String getAndSet1 = opsForValue.getAndSet("WETRANSN:CUSTOMER:CID", "15527411803");
            System.out.println("getAndSet1:"+getAndSet1);
            //如果没有“张三”就返回null,并且赋值为“张三”
            String getAndSet2 = opsForValue.getAndSet("WETRANSN:CUSTOMER:NICKNAME", "张三");
            System.out.println("getAndSet2:"+getAndSet2);
            //Long类型的数值累加
            Long increment1 = opsForValue.increment("WETRANSN:CUSTOMER:CREATETIME", 1473734828l);
            System.out.println("increment1:"+increment1);
            //Double类型的数值累加
            Double increment2 = opsForValue.increment("WETRANSN:CUSTOMER:MONEY", 5600d);
            System.out.println("increment2:"+increment2);
            //字符串连接,返回增加到第几个字节
            Integer append1 = opsForValue.append("WETRANSN:CUSTOMER:COMPANYNAME", "chuanshen");
            System.out.println("append1:"+append1);
            Integer append2 = opsForValue.append("WETRANSN:CUSTOMER:COMPANYNAME", "yulianwang");
            System.out.println("append2:"+append2);
            
        } finally {
            lock.unlock();
        }
	}
	
	@Test
	public void testOpsForHash() throws Exception {
		//hashMap放入键值对
		Invoice invoice1 = new Invoice();
		invoice1.setCid("WE30000000CU");
		invoice1.setAmount(488d);
		invoice1.setCurrency("CHN");
		invoice1.setTag("语联网(武汉)信息技术有限公司");
		invoice1.setType("2");
		invoice1.setContent("1");
		invoice1.setAddress("光谷E城,E2栋5楼");
		String invoice1String = JSON.toJSONString(invoice1);
		Invoice invoice2 = new Invoice();
		invoice2.setCid("WE40000000CU");
		invoice2.setAmount(599d);
		invoice2.setCurrency("SGP");
		invoice2.setTag("天津蓝晶光电技术股份有限公司");
		invoice2.setType("1");
		invoice2.setContent("2");
		invoice2.setAddress("光谷大道");
		String invoice2String = JSON.toJSONString(invoice2);
		Invoice invoice3 = new Invoice();
		invoice3.setCid("WE50000000CU");
		invoice3.setAmount(788d);
		invoice3.setCurrency("USD");
		invoice3.setTag("湖北东风汽车有限公司");
		invoice3.setType("1");
		invoice3.setContent("2");
		invoice3.setAddress("神龙大道");
		String invoice3String = JSON.toJSONString(invoice2);	
		opsForHash.put("WETRANSN:INVOICE:CID", "WE30000000CU", invoice1String);
		opsForHash.put("WETRANSN:INVOICE:CID", "WE40000000CU", invoice2String);
		//如果不存在则返回true,并且存入redis;如果存在则返回false
		Boolean putIfAbsent = opsForHash.putIfAbsent("WETRANSN:INVOICE:TAG", "WE30000000CU", "语联网(武汉)信息技术有限公司");
		System.out.println(putIfAbsent);
		Boolean putIfAbsent2 = opsForHash.putIfAbsent("WETRANSN:INVOICE:CID", "WE50000000CU", invoice3String);
		System.out.println(putIfAbsent2);
		//将map的键值对依次放入"WETRANSN:INVOICE:INVOICE"
		Map allMap = new HashMap();
		allMap.put("cid", "WE50000000CU");
		allMap.put("amount", "699");
		allMap.put("currency", "USD");
		allMap.put("tag", "华为科技");
		allMap.put("type", "1");
		allMap.put("content", "1");
		allMap.put("address", "未来城");	
		opsForHash.putAll("WETRANSN:INVOICE:INVOICE", allMap);
		//根据redis标识和主键取值
		String get = opsForHash.get("WETRANSN:INVOICE:INVOICE", "address");
		System.out.println(get);
		//判断"WETRANSN:INVOICE:CID"中是否有存在的key
		Boolean hasKey = opsForHash.hasKey("WETRANSN:INVOICE:CID", "WE90000000CU");
		System.out.println(hasKey);
		//删除"WETRANSN:INVOICE:INVOICE"中Key为"content"的记录
		opsForHash.delete("WETRANSN:INVOICE:INVOICE", "content");
		//根据Collection类型的多个key,获取一个List集合的值
		List cid = new ArrayList(); 
		cid.add("WE30000000CU");
		cid.add("WE40000000CU");
		List multiGet = opsForHash.multiGet("WETRANSN:INVOICE:CID", cid);
		System.out.println(multiGet);
		Set cid2 = new HashSet();
		cid2.add("WE30000000CU");
		cid2.add("WE40000000CU");
		List multiGet2 = opsForHash.multiGet("WETRANSN:INVOICE:CID", cid2);
		System.out.println(multiGet2);
		//获取"WETRANSN:INVOICE:CID"下所有的key
		Set keys = opsForHash.keys("WETRANSN:INVOICE:CID");
		System.out.println(keys);
		//获取"WETRANSN:INVOICE:CID"下所有的value
		List values = opsForHash.values("WETRANSN:INVOICE:CID");
		System.out.println(values);
		//获取"WETRANSN:INVOICE:CID"的元素长度
		Long size = opsForHash.size("WETRANSN:INVOICE:CID");
		System.out.println(size);
		//获取形如:{WE30000000CU={"address":"光谷E城,E2栋5楼","amount":488,"cid":"WE30000000CU","content":"1","currency":"CHN","tag":"语联网(武汉)信息技术有限公司","type":"2"}, WE50000000CU={"address":"光谷大道","amount":599,"cid":"WE40000000CU","content":"2","currency":"SGP","tag":"天津蓝晶光电技术股份有限公司","type":"1"}, WE40000000CU={"address":"光谷大道","amount":599,"cid":"WE40000000CU","content":"2","currency":"SGP","tag":"天津蓝晶光电技术股份有限公司","type":"1"}}
		Map entries = opsForHash.entries("WETRANSN:INVOICE:CID");
		System.out.println(entries);
		//累计long和double类型的数字
		Double increment = opsForHash.increment("WETRANSN:INVOICE:AMOUNT", "WE30000000CU", 699d);
		System.out.println(increment);
		Long increment2 = opsForHash.increment("WETRANSN:INVOICE:AMOUNT", "WE40000000CU", 788l);
		System.out.println(increment2);
		//org.springframework.data.redis.core.StringRedisTemplate@53dad875
		RedisOperations operations = opsForHash.getOperations();
		System.out.println(operations);
		
	}
	
	
	@Test
	public void testOpsForList() throws Exception {
		TruserInfo user = new TruserInfo();
		user.setTr_id("WE16000159TR");
		user.setNickname("祝思");
		user.setPwd("e10adc3949ba59abbe56e057f20f883e");
		user.setPhone("18900000000");
		user.setEmail("[email protected]");
		user.setCreate_time(1471105486l);
		user.setCfrom("CHN");
		user.setCurrency("CNY");
		String userString = JSON.toJSONString(user);	
		TruserInfo user2 = new TruserInfo();
		user2.setTr_id("WE16000160TR");
		user2.setNickname("熊晶");
		user2.setPwd("e10adc3949ba59abbe56e057f20f883e");
		user2.setPhone("19000000000");
		user2.setEmail("[email protected]");
		user2.setCreate_time(1471105486l);
		user2.setCfrom("CHN");
		user2.setCurrency("CNY");
		String user2String = JSON.toJSONString(user2);	
		//放入"WETRANSN:TRUSER:TRID"集合,返回行数(不排重)
		Long leftPush = opsForList.leftPush("WETRANSN:TRUSER:TRID", userString);
		Long leftPush2 = opsForList.leftPush("WETRANSN:TRUSER:TRID", user2String);
		System.out.println(leftPush);
		System.out.println(leftPush2);
		//将N个值全部放入"WETRANSN:TRUSER:NICKNAME",返回总个数(不排重)
		Long leftPushAll = opsForList.leftPushAll("WETRANSN:TRUSER:NICKNAME", "祝思","熊晶","董畅");
		System.out.println(leftPushAll);
		List phone = new ArrayList(); 
		phone.add("18900000000");
		phone.add("19000000000");
		phone.add("19100000000");
		phone.add("19200000000");
		//将集合全部放入"WETRANSN:TRUSER:PHONE",返回总个数(不排重)
		Long leftPushAll2 = opsForList.leftPushAll("WETRANSN:TRUSER:PHONE", phone);
		System.out.println(leftPushAll2);
		//如果"WETRANSN:TRUSER:NICKNAME2"存在,则放入"WETRANSN:TRUSER:NICKNAME2"中,返回行数
		//如果"WETRANSN:TRUSER:NICKNAME2"不存在,则不操作,返回0
		Long leftPushIfPresent = opsForList.leftPushIfPresent("WETRANSN:TRUSER:NICKNAME2", "蒋汉华");
		System.out.println(leftPushIfPresent);
		//从左边开始删除值,返回删除的值
		String leftPop = opsForList.leftPop("WETRANSN:TRUSER:PHONE");
		System.out.println(leftPop);
		//删除超时弄不清楚
		String leftPop2 = opsForList.leftPop("WETRANSN:TRUSER:PHONE", 1, TimeUnit.NANOSECONDS);
		System.out.println(leftPop2);
		//取从左往右[0,1]的所有值的集合
		List range = opsForList.range("WETRANSN:TRUSER:NICKNAME", 0, 1);
		System.out.println(range);
		//获取"WETRANSN:TRUSER:NICKNAME"的个数
		Long size = opsForList.size("WETRANSN:TRUSER:NICKNAME");
		System.out.println(size);
		//删除除了[0,1]以外的所有元素
		opsForList.trim("WETRANSN:TRUSER:NICKNAME", 0, 1);
		//更新已有的元素(从0开始),如果没有则会出现越界异常,如果没有这个元素的key,也会出现找不到key的异常
		opsForList.set("WETRANSN:TRUSER:NICKNAME", 0, "龙津");
		opsForList.set("WETRANSN:TRUSER:NICKNAME2", 1, "明正");
		//删除N个元素值为“XXXX”,返回删除的个数;如果没有这个元素则返回0
		Long remove = opsForList.remove("WETRANSN:TRUSER:NICKNAME", 3, "龙津");
		System.out.println(remove);
		//列出index行的值,从0开始
		String index = opsForList.index("WETRANSN:TRUSER:PHONE", 0);
		System.out.println(index);
		//将源key的队列的右边的一个值删除,然后塞入目标key的队列的左边,返回这个值
		String rightPopAndLeftPush = opsForList.rightPopAndLeftPush("WETRANSN:TRUSER:PHONE", "WETRANSN:TRUSER:NICKNAME");
		System.out.println(rightPopAndLeftPush);
	}
	
	@Test
	public void testOpsForSet() throws Exception {
		SysLan sysLan = new SysLan();
		sysLan.setCnname("中文");
		sysLan.setCode("zh-CN");
		sysLan.setEnname("Simplified Chinese");
		sysLan.setId("100000");
		String sysLanString = JSON.toJSONString(sysLan);
		SysLan sysLan1 = new SysLan();
		sysLan1.setCnname("英语");
		sysLan1.setCode("en");
		sysLan1.setEnname("English");
		sysLan1.setId("100001");
		String sysLan1String = JSON.toJSONString(sysLan1);
		SysLan sysLan2 = new SysLan();
		sysLan2.setCnname("法语");
		sysLan2.setCode("fr");
		sysLan2.setEnname("French");
		sysLan2.setId("100002");
		String sysLan2String = JSON.toJSONString(sysLan2);
		SysLan sysLan3 = new SysLan();
		sysLan3.setCnname("德语");
		sysLan3.setCode("de");
		sysLan3.setEnname("German");
		sysLan3.setId("100003");
		String sysLan3String = JSON.toJSONString(sysLan3);
		//如果不存在这个字符串,将字符串存入set集合,返回存入元素的个数;如果存在这个字符串就不操作,返回0;
		Long add = opsForSet.add("WETRANSN:SYSLAN2", sysLan3String);
		Long addmore = opsForSet.add("WETRANSN:SYSLAN", sysLanString, sysLan1String, sysLan2String,sysLan3String);
		System.out.println(add);
		System.out.println(addmore);
		//列出key为"WETRANSN:SYSLAN"的所有set集合
		Set members = opsForSet.members("WETRANSN:SYSLAN");
		System.out.println(members);
		//随机取key为"WETRANSN:SYSLAN"的一个set元素
		String randomMember = opsForSet.randomMember("WETRANSN:SYSLAN");
		System.out.println(randomMember);
		//随机取N次key为"WETRANSN:SYSLAN",组成一个list集合,可以重复取出
		List randomMembers = opsForSet.randomMembers("WETRANSN:SYSLAN", 3);
		System.out.println(randomMembers);
		//随机取N次key为"WETRANSN:SYSLAN",组成一个set集合,不可以重复取出
		Set distinctRandomMembers = opsForSet.distinctRandomMembers("WETRANSN:SYSLAN", 2);
		System.out.println(distinctRandomMembers);
		//sysLan1String字符串是否是key为"WETRANSN:SYSLAN"set集合的元素
		Boolean member = opsForSet.isMember("WETRANSN:SYSLAN", sysLan1String);
		System.out.println(member);
		//将字符串sysLanString从key为"WETRANSN:SYSLAN"的集合,移动到key为"WETRANSN:SYSLAN2"的集合,返回是否移动成功
//		Boolean move = opsForSet.move("WETRANSN:SYSLAN", sysLanString, "WETRANSN:SYSLAN2");
//		System.out.println(move);
		//删除key为"WETRANSN:SYSLAN"的元素sysLan1String、sysLan2String的字符串,返回删除的个数
//		Long remove = opsForSet.remove("WETRANSN:SYSLAN", sysLan1String, sysLan2String);
//		System.out.println(remove);
		//从左侧依次删除元素
//     	String pop = opsForSet.pop("WETRANSN:SYSLAN");
//		System.out.println(pop);
		//返回集合长度
		Long size = opsForSet.size("WETRANSN:SYSLAN");
		System.out.println(size);
		//difference(K key, K otherKey);
		//比较key与otherKey的set集合,返回与otherKey集合不一样的set集合
		Set difference = opsForSet.difference("WETRANSN:SYSLAN","WETRANSN:SYSLAN2");
		System.out.println(difference);
		Set difference2 = opsForSet.difference("WETRANSN:SYSLAN2","WETRANSN:SYSLAN");
		System.out.println(difference2);
		//differenceAndStore(K key, K otherKey, K destKey);
		//比较key与otherKey的set集合,取出与otherKey的set集合不一样的set集合,并存入destKey的set集合中,返回存入个数
		Long differenceAndStore = opsForSet.differenceAndStore("WETRANSN:SYSLAN","WETRANSN:SYSLAN2", "WETRANSN:SYSLAN3");
		System.out.println(differenceAndStore);
		//intersect(K key, K otherKey);
		//比较key与otherKey的set集合,取出二者交集,返回set交集合
		Set intersect = opsForSet.intersect("WETRANSN:SYSLAN","WETRANSN:SYSLAN2");
		System.out.println(intersect);
		Set intersect2 = opsForSet.intersect("WETRANSN:SYSLAN2","WETRANSN:SYSLAN");
		System.out.println(intersect2);
		//intersectAndStore(K key, K otherKey, K destKey);
		//比较key与otherKey的set集合,取出二者交集,并存入destKey集合,返回null
		Long intersectAndStore = opsForSet.intersectAndStore("WETRANSN:SYSLAN","WETRANSN:SYSLAN3", "WETRANSN:SYSLAN4");
		System.out.println(intersectAndStore);
		//union(K key, K otherKey)
		//比较key与otherKey的set集合,取出二者并集,返回set并集合
		Set union = opsForSet.union("WETRANSN:SYSLAN","WETRANSN:SYSLAN2");
		System.out.println(union);
		//unionAndStore(K key, K otherKey, K destKey)
		//比较key与otherKey的set集合,取出二者并集,并存入destKey集合,返回destKey集合个数
		Long unionAndStore = opsForSet.unionAndStore("WETRANSN:SYSLAN", "WETRANSN:SYSLAN2", "WETRANSN:SYSLAN5");
		System.out.println(unionAndStore);
	}
	
	@Test
	public void testOpsForZSet() throws Exception {
		MessageContent message1 = new MessageContent();
		message1.setMsgId(1);
		message1.setMsgContent("内容1");
		message1.setReceiverType("TR");
		message1.setCfrom("CHN");
		String message1String = JSON.toJSONString(message1);
		MessageContent message2 = new MessageContent();
		message2.setMsgId(2);
		message2.setMsgContent("内容2");
		message2.setReceiverType("TQ");
		message2.setCfrom("USD");
		String message2String = JSON.toJSONString(message2);
		MessageContent message3 = new MessageContent();
		message3.setMsgId(3);
		message3.setMsgContent("内容3");
		message3.setReceiverType("ZJ");
		message3.setCfrom("SGP");
		String message3String = JSON.toJSONString(message3);
		MessageContent message4 = new MessageContent();
		message4.setMsgId(4);
		message4.setMsgContent("内容4");
		message4.setReceiverType("RT");
		message4.setCfrom("CVB");
		String message4String = JSON.toJSONString(message4);
//		Set messageSet = new HashSet();
//		messageSet.add(message1String);
		//存入字符串和排序号到zset
		Boolean add = opsForZSet.add("WETRANSN:MESSAGE2", message1String, 1);
		Boolean add2 = opsForZSet.add("WETRANSN:MESSAGE2", message2String, 3);
		Boolean add3 = opsForZSet.add("WETRANSN:MESSAGE2", message3String, 5);
		Boolean add4 = opsForZSet.add("WETRANSN:MESSAGE2", message4String, 9);
		System.out.println(add);
		//取key为"WETRANSN:MESSAGE1"集合,从0到1,返回取出来的集合;0到-1是取全部;
		Set range = opsForZSet.range("WETRANSN:MESSAGE1",0,1);
		System.out.println(range);
		//删除一个或多个值,返回删除个数
//		Long remove = opsForZSet.remove("WETRANSN:MESSAGE1", message3String);
//		System.out.println(remove);
		//删除[M,N]行号的值,返回删除个数
//		Long removeRange = opsForZSet.removeRange("WETRANSN:MESSAGE2", 0, 1);
//		System.out.println("removeRange:"+removeRange);
		//删除[M,N]序列号的值,返回删除个数
//		Long removeRangeByScore = opsForZSet.removeRangeByScore("WETRANSN:MESSAGE2", 0, 4);
//		System.out.println("removeRangeByScore:"+removeRangeByScore);
		//取行号,从0开始
		Long rank = opsForZSet.rank("WETRANSN:MESSAGE1", message3String);
		System.out.println(rank);
		//取反转行号,与rank相反
		Long reverseRank = opsForZSet.reverseRank("WETRANSN:MESSAGE1", message3String);
		System.out.println(reverseRank);
		//取double类型的序列号
		Double score = opsForZSet.score("WETRANSN:MESSAGE1", message3String);
		System.out.println(score);
		//列出序列号从[N,M]的元素个数
		Long count = opsForZSet.count("WETRANSN:MESSAGE1", 0, 3);
		System.out.println(count);
		//返回集合的长度
		Long size = opsForZSet.size("WETRANSN:MESSAGE2");
		System.out.println(size);
		//返回集合的长度
		Long zCard = opsForZSet.zCard("WETRANSN:MESSAGE2");
		System.out.println(zCard);
	
	
	
	
	}
	
}

你可能感兴趣的:(redis)