环境配置
- 需要导入jedis.jar包
- 启动redis服务。
- 代码测试连接redis
JedisPool jPool = new JedisPool("localhost",6379)
Jedis jedis = jPool.getResource()
jedis.set("date", "2017-01-19")
jedis.set("work", "coding")
System.out.println(jedis.get("date"))
jPool.destroy()
key的使用
//当key存在时,才删除。成功为1,失败为0
jedis.set("age", "23")
long result = jedis.del("price")
long result2 = jedis.del("gggg")
System.out.println("=="+result+"=="+result2)
//判断key是否存在
boolean flag = jedis.exists("price")
System.out.println("是否存在:"+flag)
//设置过期时间
//jedis.expire("name", 5)
//jedis.expireAt("age", 5)
//返回key值中存储的类型
System.out.println("age值类型:"+jedis.type("age"))
System.out.println("name值类型:"+jedis.type("name"))
//修改key的名称
System.out.println("修改为:"+jedis.rename("addr", "address"))
//将key放到给定的db中。
// jedis.move(key, dbIndex)
//查找给定模式的key
System.out.println(jedis.keys("*"))
String的使用
//Jedis字符串的API
jedis.set("age", "24")
jedis.append("name", " hh")
System.out.println(jedis.getrange("address", 2, 4))
System.out.println(jedis.get("name"))
//当key不存在时,才会设置值
jedis.setnx("age","hhhh")
jedis.setnx("from", "henan")
System.out.println(jedis.get("age"))
System.out.println(jedis.get("from"))
//key对应的value的字符长度
System.out.println("name的字符长度是:"+jedis.strlen("name"))
//设置多组key/value值
jedis.mset("value1","hhhh","value2","xxxx","value3","llll")
//获取多组value值
List<String> strs = jedis.mget("value1","name","value2")
System.out.println(strs)
System.out.println("=============")
//给key值中存储的数字+1
jedis.incr("age")
System.out.println("=="+jedis.get("age"))
//数字-1
jedis.decr("age")
//减去指定的值
jedis.decrBy("age", 4)
System.out.println("decrBy:"+jedis.get("age"))
jedis.set("price", "2.5")
jedis.incr("name")
System.out.println("=如果不是int类型就报错="+jedis.get("name"))
List的使用
//将一个或多个值插入到列表头部
// jedis.flushDB()
jedis.lpush("lkeys", "val1","val2","val1","val1","val2","val3","val4","val5")
//获取list指定区域的值
System.out.println(jedis.lrange("lkeys", 0, 20))
//当key已经存在的时候,设置新值。
jedis.lset("lkeys", 1, "val000")
System.out.println(jedis.lrange("lkeys", 1, 4))
//获取列表长度
System.out.println("获取列表长度:"+jedis.llen("lkeys"))
//移除列表元素,删除count个值为value的数据。count=0,删除所有值为value的数据
System.out.println("移除列表元素:"+jedis.lrem("lkeys", 0, "val1"))
//对列表进行修剪
System.out.println("列表修剪结果:"+jedis.ltrim("lkeys", 0, 5))
//
Hash的使用
//Jedis的hashAPI
//hash特别适合用于存储对象
jedis.hset("person", "name", "lzl")
jedis.hset("person", "age", "23")
jedis.hset("person", "address", "河南")
jedis.hset("person", "birthday", "1993-01-01")
jedis.hset("person", "price", "2.3")
//将多个field-value(域-值)设置到hash表中
Map<String,String> hash = new HashMap<>()
hash.put("name", "xxx")
hash.put("age", "33")
hash.put("address", "北京")
jedis.hmset("person2", hash)
//获取key中所有的属性
System.out.println("person对象对应的属性有:"+jedis.hkeys("person"))
//获取hash表中字段的数量
System.out.println("person对象的属性个数:"+jedis.hlen("person"))
//获取hash表中指定key的所有字段和值
System.out.println("person对象的属性和值分别是:"+jedis.hgetAll("person"))
//给hash表中指定字段的整数值加上增量
System.out.println("整型加上增量的结果:"+jedis.hincrBy("person", "age", 5))
//获取hash表中的所有值
System.out.println("hash表中的所有值:"+jedis.hvals("person2"))
Set的使用
jedis.flushDB()
//向集合添加一个多多个成员
jedis.sadd("skeys", "sval1","sval2","sval3","sval4","sval5")
jedis.sadd("skeys_l", "sval1","sval6","sval7","sval4","sval5")
//获取集合总数
System.out.println("获取集合的成员数:"+jedis.scard("skeys"))
//返回两个或多个集合的差集
System.out.println("skeys与skeys_l集合的差集:"+jedis.sdiff("skeys","skeys_l"))
//返回集合差集并存储在diff_keys中
jedis.sdiffstore("diff_keys", "skeys","skeys_l")
//返回给定集合的交集
System.out.println("两个集合的交集:"+jedis.sinter("skeys","skeys_l"))
//判断元素是否在集合中
System.out.println("是否在集合中:"+jedis.sismember("skeys", "val2"))
//将元素从A集合移动到B集合中
System.out.println("将元素从A集合移动到B集合中:"+jedis.smove("diff_keys", "skeys_l", "sval7"))
//返回给定集合的并集
System.out.println("集合的并集:"+jedis.sunionstore("deskeys", "skeys_l","skeys"))
SortSet的使用
Map<Double,String> membersMap = new HashMap<>()
membersMap.put(2D, "lzl")
membersMap.put(3D, "hhh")
membersMap.put(2D, "lzl")
membersMap.put(5D, "lzl")
membersMap.put(3D, "hhh-3")
membersMap.put(6D, "lzl-6")
//添加或更新有序集合,有序集合的值不可以重复,但是分数是可以重复的
jedis.zadd("zkeys", membersMap)
Map<Double,String> membersMap_1 = new HashMap<>()
membersMap_1.put(1D, "lzl")
membersMap_1.put(2D, "hhh")
membersMap_1.put(3D, "lzl")
membersMap_1.put(4D, "lzl")
membersMap_1.put(5D, "hhh-3")
membersMap_1.put(6D, "lzl-6")
//添加或更新有序集合,有序集合的值不可以重复,但是分数是可以重复的
jedis.zadd("zkeys_1", membersMap_1)
//获取有序集合的成员数
System.out.println("有序集合的成员数:"+jedis.zcard("zkeys"))
//指定成员的分数增加一定的增量
System.out.println("指定成员的分数增加增量:"+jedis.zincrby("zkeys", 4, "lzl"))
//计算交集,并将结果存储在有序集合中
System.out.println("计算交集,并将结果存储在有序集合中:"+jedis.zinterstore("deskeys", "zkeys_1","zkeys"))
//计算有序集合指定区间的分数的成员数
System.out.println("指定区间的分数成员数量:"+jedis.zcount("zkeys", 0, 5))
//返回有序集合指定区间的成员
System.out.println("集合指定区间的成员:"+jedis.zrange("zkeys", 0, 6))
//返回有序集合指定值的score值
System.out.println("score值是:"+jedis.zrank("zkeys", "lzl"))
//移除有序集合中指定元素
System.out.println("移除元素:"+jedis.zrem("zkeys_1", "lzl"))
//返回有序集合指定成员的排名
System.out.println("有序集合排名:"+jedis.zrevrank("zkeys", "hhh"))
//集合中有序成员的分数值
System.out.println("有序集合的分数值:"+jedis.zscore("zkeys", "hhh-3"))
//计算集合并集,并存储到新的key中
System.out.println("并集:"+jedis.zunionstore("unionKeys", "zkeys","zkeys_1"))
参考网址:http://www.runoob.com/redis/redis-hyperloglog.html