TestRedisController.java 3.38 KB
package com.yoho.search.restapi.tools;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yoho.core.redis.cluster.operations.serializer.RedisKeyBuilder;
import com.yoho.search.cache.CacheInMinute;
import com.yoho.search.cache.beans.SimpleRedisComponent;
import com.yoho.search.cache.impls.SearchRedis;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.*;

@Controller
public class TestRedisController {

    @Autowired
    private SearchRedis searchRedis;
    @Autowired
    private SimpleRedisComponent simpleRedisComponent;

    @RequestMapping(value = "/testRedis/bitset")
    @ResponseBody
    public Map<String, Object> testBitset() {
        long begin = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            BitSet bitSet = new BitSet(100000);
            for (int j = 0; j < 10000; j++) {
                bitSet.set(j);
            }
            bitSet.set(100000);
            RedisKeyBuilder redisKeyBuilder = new RedisKeyBuilder();
            redisKeyBuilder.appendFixed("RedisBitSet:").appendVar(System.currentTimeMillis());
            redisKeyBuilder.appendFixed(":").appendVar((int) (Math.random() * 1000));
            searchRedis.setBitSet(redisKeyBuilder, bitSet, 100);
        }
        Map result = new HashMap<>();
        result.put("code", 200);
        result.put("messgae", "success");
        result.put("cost", System.currentTimeMillis() - begin);
        return result;
    }

    @RequestMapping(value = "/testRedis/simpleRedisComponent")
    @ResponseBody
    public Map<String, Object> simpleRedisComponent() {
        Map<String, Object> result  = new HashMap<>();

        //测试Integer型
        RedisKeyBuilder testInteger = RedisKeyBuilder.newInstance().appendFixed("testInteger");
        addAndTest(result, testInteger,100);

        //测试String型
        RedisKeyBuilder testString = RedisKeyBuilder.newInstance().appendFixed("testString");
        addAndTest(result, testString,"111111");

        //测试JSONObject型
        RedisKeyBuilder testJSONObject = RedisKeyBuilder.newInstance().appendFixed("testJSONObject");
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("1","1");
        addAndTest(result, testJSONObject,jsonObject);

        //测试JSONArray型
        RedisKeyBuilder testJSONArray = RedisKeyBuilder.newInstance().appendFixed("testJSONArray");
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(jsonObject);
        jsonArray.add(jsonObject);
        addAndTest(result, testJSONArray,jsonArray);

        //测试List类型
        RedisKeyBuilder testList = RedisKeyBuilder.newInstance().appendFixed("testList");
        List<JSONObject> list = new ArrayList<JSONObject>();
        list.add(jsonObject);
        list.add(jsonObject);
        addAndTest(result, testList,list);

        return result;
    }

    private void addAndTest(Map<String, Object> result ,RedisKeyBuilder key,Object value){
        simpleRedisComponent.addValueToRedis(key,value, CacheInMinute.Minute_1);
        result.put(key.toString(),simpleRedisComponent.getValueFromRedis(key,value.getClass()));
    }


}