Redis是一种基于key-value的内存数据库,被称为noSql. 而Jedis则是Java与redis交互的接口。redis支持操作String, key, List, Set, SortedSet, Hash等数据类型。下面总结一些常见的操作,按不同数据类型分类总结。
涉及到的jar包有redis-2.6.jar, commons-pool2-2.0.jar(这个pool包必须有,因为redis的一些操作要依赖
该pool包的方法)——同时必须注意redis版本越高,需要依赖的pool的版本也越高。注:譬如redis用2.1版,只需要引用commons-pool-1.6.jar包,但是如果是2.6版本的jedis包,则需要依赖commons-pool2-2.0.jar包,否则会编译不通过的说!
首先,必须建立Jedis或ShardedJedis对象,Jedis基于这几种数据类型的操作,操作者都是Jedis或ShardedJedis的。(当然,安装redis搭建环境、开启服务 等步骤就不说了),下面以Jeids为例。(ShardedJedis有他自己的ShardedJedisPool池)
// 池基本配置
JedisPoolConfig config = new JedisPoolConfig();
// config.setMaxActive(20);
config.setMaxIdle(5);
config.setMaxWaitMillis(1000l);
config.setTestOnBorrow(false);
jedisPool = new JedisPool(config,String host,int port);
//从池当中获取Jeids对象
Jedis jedis = JedisPool.getResource();//释放Jedis:jedisPool.returnResource(jedis);
然后一系列的操作都是jedis(或shardedJeids).xxxxx
(一)对Key的操作总结
/**key的操作总结
* flushDB()-清空库中所有数据
* exists(String key)-判断key是否存在
* keys(String pattern)-获取key集合
* del(String key)-删除key
* set(String key, String value)-为key设置value
* expire(String key, int seconds)-设置key的存活时间
* ttl(String key)-查看key的剩余存活时间
* type(String key)-查看key的value对应的值类型
*/
(二)对String的操作
/**
*String的操作 总结
*set/get/del
*append(String key, String append)-追加
*mset(String key1,String value1,String key2,String value2,……)-一次性新增
*mget(String key1,String key2,……)-一次性获取
*del(String[] keys)-一次性删除
*setnx(String key, String value)—当原先key有value时,将不会覆盖原有值
*setex(String key, int seconds, String value)-为key指定value并指定存活时间
*getSet(String key, String newVal)-获取原值,更新为新值
*getrange(String key, int start, int end)-获取key对应的value的子串
*/
(三)对List的操作
/**
* List操作总结
* lpush(String listKey,String value)-为list加入元素
* lrange(String listKey,0,-1)-获取list所有元素
* lrem(String listKey, int count, String value)-从list中删除count个value元素
* ltrim(String listKey,int start, int end)-删除区间以外的元素
* lpop(String listKey)-出栈元素
* lset(String listKey, int index, String value)-修改下表为Index的值为value
* llen(String listKey)-list长度
* sort(String listKey, SortingParams sp)-按 SortingParams为list排序
* sort(String listKey)-简单排序,一般适合元素为数字的list
* lindex(String listKey, int index)-获取指定下标对应的值
*/
(四)对Set的操作
/**
* Set操作总结
* sadd(String setKey, String value)-为set添加元素
* smembers(String setKey)-查看set所有元素
* srem(String setKey, String vlaue)-删除指定的value元素
* sismember(String setKey, String vlaue)-判断value是否在set中
* sinter(String setKey1, String setKey2, ……)-取集合交集
* sunion(String setKey1, String setKey2, ……)-取集合并集
* sdiff(String setKey1, String setKey2, ……)-取集合差集
*/
(五)对SortedSet的操作
/**
* SortedSet操作总结
* zadd(String setKey, double score, String value)-为集合添加元素并指定权重(存放顺序依据)
* zrange(String setKey, 0 ,-1)-取出排好序的全部元素
* zrem(String setKey, String value)-删除集合中的value元素
* zcard(String setKey)-查看集合的元素个数
* zcount(String setKey, double min, double max)-某个权重范围内,元素个数
* zscore(String setKey, String value)-查询指定元素的权重
* zrange(int start, int end)-获取指定下标范围内的元素(按从小到大排好了)
* zrevange(int start, int end)-获取指定下标范围内的元素(按从大到小排好了)
*jedis.zrank(key, member)-获取指定member的排名
*/
(六)对Hash的操作
/**
* Hash操作总结
* hset(String hashKey, String key, String value)-为hash添加元素
* hmset(String hashKey, Map map<String, String>)-为hash添加一个map元素,需注意map的泛型
* hincrBy(String hashKey, String key, int value)-为hash添加整型元素值(如果是已经存在,则value为在原值上增加的值)
* hvals(String hashKey)-获取hash中所有元素
* hdel(String hashKey, String key)-删除key对应的元素
* hexists(String hashKey, String key)-判断key对应的元素是否存在
* hget(String hashKey, String key)-获取key对应的元素
* hmget(String key1, key2, ……)-一次性获取指定key所对应的元素
* hgetAll(String key)-获取指定key所对应的map元素
* hkeys(String hashKey)-获取hash的key集合
* hvals(String hashKey)-获取hash的value集合
*/
总结完毕!