redis操作五种数据类型
2019-08-21 16:02
1186 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42618873/article/details/99970371
redis操作五种数据类型
需要下载Jedis驱动或引入依赖请点击下载(2.9.0版本)
package test; 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; /** * @Title: RedisTest * @Description: 测试连接Redis缓存数据库及Redis操作数据类型解析使用 * @author: wangsai * @date 2019/8/21 11:20 */ public class RedisTest { /** * 连接Redis缓存数据库 */ public Jedis connRedisUtil(){ //连接本地Redis Jedis jedis = new Jedis("localhost"); System.out.println("连接成功"); //查看是否运行 System.out.println("服务正在运行:"+jedis.ping()); return jedis; } /** * 测试Redis操作(crud)String(字符串)类型 */ @Test public void stringTest(){ //连接本地Redis Jedis jedis = connRedisUtil(); //添加数据 jedis.set("xing","wang"); jedis.set("ming","sai"); //根据Key查找value System.out.println("读取姓:"+jedis.get("xing")+" 读取名:"+jedis.get("ming") +" 没有相应的Key时:"+ jedis.get("wangsai")); //当没有相应的Key时获取结果为null //拼接字符串 jedis.append("xing","王"); System.out.println("拼接结果:"+jedis.get("xing")); //覆盖Key即可修改value jedis.rename("xing","姓"); // jedis.set("xing","wang");//其中key是可以重命名的 System.out.println("覆盖即为修改:"+jedis.get("xing")); //删除数据 jedis.del("xing"); jedis.del("ming"); //设置多个键值对 jedis.mset("name", "shi","age","22","sex","男"); //获取输出上边设置的多个键值对的值 System.out.println("多对键值对:"+jedis.mget("name","age","sex")); jedis.del("name"); System.out.println("删除其中一个键值对:"+jedis.mget("name","age","sex")); jedis.del("age","sex"); System.out.println("删除剩余的键值对:"+jedis.mget("name","age","sex")); } /** * 测试Redis中的Hash(哈希)类型 */ @Test public void hashTest(){ //连接本地Redis Jedis jedis = connRedisUtil(); Map<String,String> map = new HashMap<String,String>(); //向map中添加数据 map.put("name","王赛"); map.put("sex","男"); map.put("age","22"); jedis.hmset("student",map); //取出student中的元素,执行结果是一个泛型的List //第一个参数是存入redis中map对象的key,后面跟的是放入map中对象的key,后面的key可以是多个,是可变的 List<String> rsmap = jedis.hmget("student", "name","sex","age"); System.out.println(rsmap); //删除map中的某个键值 /* jedis.hdel("student","age"); System.out.println(jedis.hmget("student","age"));//此时输出为null jedis.hdel("student","name","sex");//删除剩余的键值对 System.out.println(jedis.hmget("student", "name","sex","age"));//此时全为空*/ System.out.println(jedis.hlen("student"));//返回key为student的键中存放的值的个数3 System.out.println(jedis.exists("student"));//是否存在key为student的记录,返回true System.out.println(jedis.hkeys("student"));//返回map对象中的所有key System.out.println(jedis.hvals("student"));//返回map对象中的所有value Iterator<String> iter = jedis.hkeys("student").iterator(); while(iter.hasNext()) { String key = iter.next(); System.out.println(key+":" + jedis.hmget("student", key)); } jedis.hdel("student","name","sex","age");//删除剩余的键值对 } /** * 测试Redis中的List(列表)类型 */ @Test public void listCRUDTest(){ //连接本地Redis Jedis jedis = connRedisUtil(); //清空数据 jedis.del("list"); //添加数据到列表中 jedis.lpush("list","王赛"); jedis.lpush("list","王世杰"); jedis.lpush("list","杜盈锐"); //获取数据并输出。其中第一个数字代表起始位置,后一个表示终止位置,-1表示读取全部 List<String> list = jedis.lrange("list",0,-1); System.out.println(list); //清空数据 jedis.del("list"); //使用rpush时,输出的顺序和添加时的顺序是一致的,lpush是相反的。即左右添加 jedis.rpush("list","spring"); jedis.rpush("list","struts"); jedis.rpush("list","hibernate"); System.out.println(jedis.lrange("list",0,-1)); jedis.del("list"); } /** * 测试Redis中的set(列表)类型 */ @Test public void setTest(){ //连接本地Redis Jedis jedis = connRedisUtil(); //添加数据 jedis.sadd("student", "王赛"); jedis.sadd("student", "王世杰"); jedis.sadd("student","杜盈锐"); //删除数据 jedis.srem("student", "杜盈锐"); System.out.println(jedis.smembers("student"));//获取所有加入的value System.out.println(jedis.sismember("student", "王赛"));//判断王赛是否是student集合的元素 System.out.println(jedis.srandmember("student"));//返回集合的一个随机元素 System.out.println(jedis.scard("student"));//返回集合的元素个数 jedis.srem("student","王赛","王世杰"); System.out.println(jedis.scard("student"));//返回集合的元素个数 } /** * 测试Redis中的sort set(有序列表)类型 */ @Test public void sortTest(){ //连接本地Redis Jedis jedis = connRedisUtil(); //jedis 排序注意,此处的rpush和lpush是List的操作。是一个双向链表(单从表现来看的) jedis.del("a");//先清除数据,再加入数据进行测试 jedis.rpush("a", "6"); jedis.lpush("a", "1"); jedis.lpush("a", "8"); jedis.lpush("a", "3"); System.out.println(jedis.lrange("a", 0, -1)); System.out.println(jedis.sort("a"));//[1,3,6,9] //输出排序后结果 System.out.println(jedis.lrange("a", 0, -1)); } }
相关文章推荐
- Redis中五种数据类型简单操作
- redis中的五种数据类型和基本操作
- Redis 常用的五种数据类型和操作
- 数据库的连接、索引和Redis的五种数据类型及其操作命令、使用场景
- Redis在windows下的常用dos操作命令----redis中的五种数据类型的操作
- redis中的五种数据类型和基本操作
- Redis笔记二之Redis命令操作简介及五种value数据类型
- redis命令及操作记录以及redis的五种数据类型介绍
- Redis五种数据类型操作命令
- redis中的五种数据类型及其常用操作
- Jedis-单独使用demo(包括redis五种数据类型常见操作)
- 通过Jedis操作Redis的五种数据类型
- redis数据类型之set常用操作
- 系统学习redis之六——redis数据类型之set数据类型及操作
- Redis入门教程:特性及数据类型的操作
- Redis hash数据类型操作
- Redis各种数据类型的操作
- 【Redis】五种数据类型
- redis常见数据类型操作命令
- redis 五种数据类型的使用场景