Jedis操作各种Redis中的数据结构
1. 字符串类型 String
- set
- get
/** * 字符串数据结构操作 */ @Test public void test2(){ //1.获取连接 Jedis jedis = new Jedis("localhost",6379); //若使用空参构造,则会使用 默认值 “localhost”,6379 //2. 操作 //存储 jedis.set("username","zhangsan"); //获取 String username = jedis.get("username"); System.out.println(username); //可以使用setex()方法存储可以指定过期时间的 key value jedis.setex("haha",20,"gg"); //y运行时将 haha: gg 存入redis,并且20秒后自动删除该键值对 //关闭连接 jedis.close(); //这个时候启动redis服务器,在客户端查询,会查到这个值 }
运用jedis对redis进行操作,只需要记住redis的一些基本操作即可,因为jedis里面的执行redis操作的方法和redis语句一样,直接调用即可,jedis.setex() 可以存储一个存在特定时间的键值对,当超过这个时间的话,键值对就自动消失
执行上诉操作后,查询redis数据库的键,发现存入成功,但是当过了20秒的时候,这个键值对就会自动消除
2. 哈希类型 hash : map格式
- hset
- hget
/** * hash操作 */ @Test public void test3(){ //1.获取连接 Jedis jedis = new Jedis("localhost",6379); //若使用空参构造,则会使用 默认值 “localhost”,6379 //2. 操作 //存储hash jedis.hset("user","name","lisi"); jedis.hset("user","age","20"); jedis.hset("user","gender","male"); //重复执行上面的操作,相同键对应值会被覆盖 //获取hash String name = jedis.hget("user", "name"); System.out.println(name); //获取hash的所有map中的数据 Map<String, String> user = jedis.hgetAll("user"); for (String key : user.keySet()) { // 获取value String value = user.get(key); System.out.println(key+":"+value); } //关闭连接 jedis.close(); //这个时候启动redis服务器,在客户端查询,会查到这个值 }
执行完上述操作后,在redis客户端输入查询语句即可查到键为user的hash类型集合
3. 列表类型 list :linkedlist格式。支持重复元素
- lpush / rpush
- lpop / rpop
/** * list操作 */ @Test public void test4(){ //1.获取连接 Jedis jedis = new Jedis("localhost",6379); //若使用空参构造,则会使用 默认值 “localhost”,6379 //2. 操作 // list存储 jedis.lpush("mylist","a","b","c"); //从左边存 jedis.rpush("mylist","a","b","c");//从右边存 //List的获取 List<String> mylist = jedis.lrange("mylist", 0, -1); //cbaabc System.out.println(mylist); //list 弹出 String lelem = jedis.lpop("mylist"); System.out.println(lelem); // c String relem = jedis.rpop("mylist"); System.out.println(relem); // c List<String> mylist1 = jedis.lrange("mylist", 0, -1); System.out.println(mylist1); //baab //关闭连接 jedis.close(); //这个时候启动redis服务器,在客户端查询,会查到这个值 }
执行完上述操作后即可在redis客户端查询到名字为mylist的list集合
4. 集合类型 set : 不允许重复元素
sadd
/**
* set操作
*/
@Test
public void test5(){
//1.获取连接
Jedis jedis = new Jedis("localhost",6379); //若使用空参构造,则会使用 默认值 “localhost”,6379
//2. 操作
//set 存储
jedis.sadd("myset","h","s","e");
//set 获取
Set<String> myset = jedis.smembers("myset");
System.out.println(myset);
//seh
//关闭连接
jedis.close();
//这个时候启动redis服务器,在客户端查询,会查到这个值
}
执行完上述操作后在redis客户端查询,即可查询到键为myset的set集合
5. 有序集合类型 sortedset:不允许重复元素,但元素有顺序
zadd
/**
* sortedset操作
*/
@Test
public void test6(){
//1.获取连接
Jedis jedis = new Jedis("localhost",6379); //若使用空参构造,则会使用 默认值 “localhost”,6379
//2. 操作
//sortedset存储
jedis.zadd("mySortedSet",3,"h");
jedis.zadd("mySortedSet",4,"e");
jedis.zadd("mySortedSet",1,"s");
//sortedset获取
Set<String> mySortedSet = jedis.zrange("mySortedSet", 0, -1);
System.out.println(mySortedSet);
//she
//关闭连接
jedis.close();
//这个时候启动redis服务器,在客户端查询,会查到这个值
}
执行完上述操作后在redis客户端查询,即可查询到键为mySortedSet的sortedset集合