redis-test/src/test/java/com/zeekling/redis/RedisPoolTest.java

162 lines
6.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.zeekling.redis;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* @author zeekling [lingzhaohui@zeekling.cn]
* @version 1.0
* @apiNote
* @since 2020-06-22
*/
public class RedisPoolTest {
private Jedis jedis;
@Before
public void setJedis() {
jedis = RedisPool.getJedis();
if (jedis != null){
jedis.flushAll();
}
System.out.println("连接服务成功");
}
/**
* Redis操作字符串
*/
@Test
public void testString() {
System.out.println("--------------begin test string--------------------");
//添加数据
jedis.set("name", "zeekling"); //key为name放入value值为chx
System.out.println("拼接前:" + jedis.get("name"));//读取key为name的值
//向key为name的值后面加上数据 ---拼接
jedis.append("name", " is my name;");
System.out.println("拼接后:" + jedis.get("name"));
//删除某个键值对
jedis.del("name");
System.out.println("删除后:" + jedis.get("name"));
//s设置多个键值对
jedis.mset("name", "zeekling", "age", "20", "email", "zeekling@zeekling.cn");
jedis.incr("age");//用于将键的整数值递增1。如果键不存在则在执行操作之前将其设置为0。 如果键包含错误类型的值或包含无法表示为整数的字符串则会返回错误。此操作限于64位有符号整数。
System.out.println(jedis.get("name") + " " + jedis.get("age") + " " + jedis.get("email"));
System.out.println("--------------end test string--------------------");
}
@Test
public void testLong(){
System.out.println("--------------begin test long--------------------");
double score = Math.E;
System.out.println(score);
jedis.set("score", String.valueOf(score));
double res = Double.parseDouble(jedis.get("score"));
System.out.println(res);
System.out.println("--------------end test long--------------------");
}
@Test
public void testMap() {
System.out.println("--------------begin test map--------------------");
//添加数据
Map<String, String> map = new HashMap<String, String>();
map.put("name", "zeekling");
map.put("age", "100");
map.put("email", "zeekling@zeekling.cn");
jedis.hset("user", map);
//取出user中的name结果是一个泛型的List
//第一个参数是存入redis中map对象的key后面跟的是放入map中的对象的key后面的key是可变参数
List<String> list = jedis.hmget("user", "name", "age", "email");
System.out.println(list);
//删除map中的某个键值
jedis.hdel("user", "age");
System.out.println("age:" + jedis.hmget("user", "age")); //因为删除了所以返回的是null
System.out.println("user的键中存放的值的个数:" + jedis.hlen("user")); //返回key为user的键中存放的值的个数2
System.out.println("是否存在key为user的记录:" + jedis.exists("user"));//是否存在key为user的记录 返回true
System.out.println("user对象中的所有key:" + jedis.hkeys("user"));//返回user对象中的所有key
System.out.println("user对象中的所有value:" + jedis.hvals("user"));//返回map对象中的所有value
//拿到key再通过迭代器得到值
for (String key : jedis.hkeys("user")) {
System.out.println(key + ":" + jedis.hmget("user", key));
}
jedis.del("user");
System.out.println("删除后是否存在key为user的记录:" + jedis.exists("user"));//是否存在key为user的记录
System.out.println("--------------end test map--------------------");
}
@Test
public void testList(){
System.out.println("--------------begin test list--------------------");
//移除javaFramwork所所有内容
jedis.del("javaFramwork");
//存放数据
jedis.lpush("javaFramework","spring");
jedis.lpush("javaFramework","springMVC");
jedis.lpush("javaFramework","mybatis");
//取出所有数据,jedis.lrange是按范围取出
//第一个是key第二个是起始位置第三个是结束位置
System.out.println("长度:"+jedis.llen("javaFramework"));
//jedis.llen获取长度-1表示取得所有
System.out.println("javaFramework:"+jedis.lrange("javaFramework",0,-1));
jedis.del("javaFramework");
System.out.println("删除后长度:"+jedis.llen("javaFramework"));
System.out.println(jedis.lrange("javaFramework",0,-1));
System.out.println("--------------end test list--------------------");
}
@Test
public void testSet(){
System.out.println("--------------begin test set--------------------");
//添加
jedis.sadd("user","zeekling");
jedis.sadd("user","hu");
jedis.sadd("user","chen");
jedis.sadd("user","xiyu");
jedis.sadd("user","chx");
jedis.sadd("user","are");
//移除user集合中的元素are
jedis.srem("user","are");
System.out.println("user中的value:"+jedis.smembers("user"));//获取所有加入user的value
System.out.println("chx是否是user中的元素:"+jedis.sismember("user","chx"));//判断chx是否是user集合中的元素
System.out.println("集合中的一个随机元素:"+jedis.srandmember("user"));//返回集合中的一个随机元素
System.out.println("user中元素的个数:"+jedis.scard("user"));
System.out.println("--------------end test set--------------------");
}
/**
* 排序
*/
@Test
public void test(){
System.out.println("--------------begin test sort--------------------");
jedis.del("number");//先删除数据,再进行测试
jedis.rpush("number","4");//将一个或多个值插入到列表的尾部(最右边)
jedis.rpush("number","5");
jedis.rpush("number","3");
jedis.lpush("number","9");//将一个或多个值插入到列表头部
jedis.lpush("number","1");
jedis.lpush("number","2");
System.out.println(jedis.lrange("number",0,jedis.llen("number")));
System.out.println("排序:"+jedis.sort("number"));
System.out.println(jedis.lrange("number",0,-1));//不改变原来的排序
jedis.del("number");//测试完删除数据
System.out.println("--------------end test sort--------------------");
}
}