RedisUtil.java 5.23 KB
package com.diligrp.website.util.redis;

import java.util.List;


public interface RedisUtil {

	/**
     * 从队列头插入数据
     * 
     * @param key 存储key
     * @param o 存储元素
     * @return true:新增成功、false:新增失败
     */
    public boolean addToListHead(String key, Object o);
    
    /**
     * 从队列尾部获取数据
     * 
     * @param key 存储key
     * @param clazz 存储数据的类类型
     * @return 如果返回空则失败或元素不存在
     */
    
    public Object getFromListTail(String key, Class<?> clazz);
    
    /**
     * 获取list信息
     * 
     * @param key 存储key
     * @param clazz 类类型
     * @return
     */
    public <T> List<T> getListInfo(String key, Class<T> clazz);
    
    /**
     * 返回列表Key的长度
     * 
     * @param key
     * @return 大于或等于0成功,小于0失败
     */
    public long getListSize(String key);
    
    /**
     * 校验key是否存在
     * 
     * @param key
     * @return true:存在,false:不存在,如果抛出异常则默认不存在
     */
    public boolean checkKeyExists(String key);
    
    /**
     * 存储对象
     * 
     * @param key 存储key
     * @param o 被存储的对象
     * @return true:成功,false:失败
     */
    public boolean setObject(String key, Object o);
    
    /**
     * 以有效期的方式存储对象
     * 
     * @param key 存储key
     * @param object 存储对象
     * @param seconds 有效期,秒
     * @return true:保存成功,false:保存失败
     */
    public boolean setObjectByExpire(String key, Object object, int seconds);
    
    /**
     * 根据key获取元素
     * 
     * @param key 存储key
     * @param clazz 类类型
     * @return 如果为空则无数据或抛出异常
     */
    public <T> T getObject(String key, Class<T> clazz);
    
    /**
     * 设置字符串数据至redis
     * 
     * @param key 存储Key
     * @param value 存储的值
     * @return true:设置成功,false;设置失败
     */
    public boolean setString(String key, String value);
    
    /**
     * 设置带有效期的字符串
     * 
     * @param key 存储key
     * @param value 值
     * @param seconds 有效期秒
     * @return true:设置成功,false;设置失败
     */
    public boolean setStringByExpire(String key, String value, int seconds);
    
    /**
     * 根据key获取字符串信息
     * 
     * @param key 存储key
     * @return 如果返回空,则未获取到数据或抛出异常
     */
    public String getString(String key);
    
    /**
     * 删除指定key
     * 
     * @param key
     * @return 如果返回小于0则执行失败
     */
    public long deleteByKey(String key);
    
    /**
     * 新增对象之sortset
     * 
     * @param key
     * @param score
     * @param object
     * @return 如果返回数据小于0则为失败
     */
    public Long addToSortSet(String key, double score, Object object);
    
    /**
     * 获取sortset中的所有数据
     * 
     * @param key 唯一key
     * @param clazz 类对象
     * @param <T>
     * @return
     */
    public <T> List<T> getSortSetInfo(String key, Class<T> clazz);
    
    /**
     * 根据下标从redis中获取元素
     * 
     * @param key 存储key
     * @param clazz 类类型
     * @param index 下标
     * @return 如果返回为空则无数据或抛出异常
     */
    public <T> T getFromSortSetByIndex(String key, Class<T> clazz, long index);
    
    /**
     * 删除sortset中的指定元素
     * 
     * @param key 存储key
     * @param o 需要删除的对象
     * @return true:删除成功,false:删除失败
     */
    public boolean delFromSortSet(String key, Object o);
    
    /**
     * 删除分数在区间范围内的元素
     * 
     * @param key 存储key
     * @param start 开始分数
     * @param end 结束分数
     * @return
     */
    public boolean delFromSortSetByScore(String key, long start, long end);
    
    /**
     * 统计sortset中元素的数量
     * 
     * @param key 存储key
     * @return 大于等于0成功,小于0失败
     */
    public long getSortSetSize(String key);
    
    /**
     * 每次递增key的值
     * 
     * @param key
     * @return 如果大于0自增成功,如果小于0自增失败
     */
    public long incrString(String key);
    
    /**
     * 设置key的过期时间
     * 1、如果生存时间设置成功,返回 1 。
     * 2、当 key不存在或没办法设置生存时间,返回 0 。
     * 
     * @param key
     * @param unixTime
     * @return
     */
    public long expireAt(String key, long unixTime);

    /**
     * 测试有效期
     * @param key
     * @return
     */
    public long ttl(String key);
    
    /**
     * 
     * 生成RedisKey
     * @param key Redis Key 的独立名称
     * @param unique Redis 的唯一标示码
     * @return
     * @createTime 2014年6月30日 下午7:23:12
     * @author Wang22
     */
    public String makeKey(String key, String unique);
    
    /**
     * 
     * 获取List数据
     * @param key
     * @param cls
     * @return
     * @createTime 2014年7月10日 下午6:07:35
     * @author Wang22
     */
    public <T> List<T> getList(String key, Class<T> cls);

}