七天玩转Redis | 打卡第5天 Jedis上手操作!

1005908 2022-01-25 20:39:37

什么是jedis是Redis官方推荐的java连接开发工具!使用java操作Redis 中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!

测试

1、导入对应的依赖

<dependencies>
         <!-- 导入jedis包 -->
         <dependency>
             <groupId>redis.clients</groupId>
             <artifactId>jedis</artifactId>
             <version>3.2.0</version>
         </dependency>
 ​
         <!-- fastjson -->
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
             <version>1.2.28</version>
         </dependency>
</dependencies>

2、编码测试:

  • 连接数据库

  • 操作命令

  • 断开连接

package com.zxy; ​
 import redis.clients.jedis.Jedis;
 ​
 public class TestPing {
     public static void main(String[] args) {
         //1、new Jedis 对象即可
         /*
         new Jedis("127.0.0.1",6379);
         第一个参数:访问地址
         第二个参数:端口号
          */
         Jedis jedis = new Jedis("127.0.0.1",6379);
         System.out.println(jedis.ping());
     }
 }
输出:

常用的API

对key操作的命令

public static void main(String[] args) {
     //1、new Jedis 对象即可
     /*
     new Jedis("127.0.0.1",6379);
     第一个参数:访问地址
     第二个参数:端口号
      */
     Jedis jedis = new Jedis("127.0.0.1",6379);

     System.out.println(jedis.ping());
 ​
     System.out.println("清空数据:"+jedis.flushDB());
     System.out.println("判断某个键是否存在:"+jedis.exists( "username"));
     System.out.println("新增< 'username' , 'kuangshen'>的键值对:"+jedis.set( "username","xuyang"));
     System.out.println("新增< 'password' , ' password'>的键值对:"+jedis.set( "password" , "password"));
     System.out.print("系统中所有的键如下: ");
     Set<String> keys = jedis.keys( "*");
     System.out.println(keys) ;
     System.out.println("删除键password: "+jedis.del("password" )) ;
     System.out.println("判断键password是否存在: "+jedis.exists("password"));
     System.out.println("查看键username所存储的值的类型: "+jedis.type("username"));
     System.out.println("随机返回key空间的一个: "+jedis.randomKey());
     System.out.println("重命名key: "+jedis.rename( "username" ,"name" ));
     System.out.println("取出改后的name: "+jedis.get( "name" ) ) ;
     System.out.println("按索引查询:"+jedis.select( 0));
     System.out.println("删除当前选择数据库中的所有key: "+jedis.flushDB());
     System.out.println("返回当前数据库中key的数目:"+jedis.dbSize());
     System.out.println("删除所有数据库中的所有key: "+jedis.flushAll());
 }

对String操作的命令

public static void main(String[] args) {
 ​
         Jedis jedis = new Jedis("127.0.0.1",6379);

         System.out.println(jedis.ping());
         System.out.println("======================增加数据=======================");
         System.out.println(jedis.set( "key1" , "value1"));
         System.out.println(jedis.set( "key2" , "value2"));
         System.out.println("删除键key2 : "+jedis.del("key2"));
         System.out.println("获取键key2 : "+jedis.get( "key2" ));
         System.out.println("修改key1 : "+jedis.set( "key1","value1Changed"));
         System.out.println("获取key1的值: "+jedis.get("key1" )) ;
         System.out.println("在key3后面加入值: "+jedis.append("key3" ,"End"));
         System.out.println( "key3的值:"+jedis.get( "key3")) ;
         System.out.println("增加多个键值对:"+jedis.mset("key01" , "value1" , "key02" ,"value02","key03","value03"));
         System.out.println("获取多个键值对:"+jedis.mget("key01" , "key02" , "key03"));
         System.out.println("删除多个键值对:"+jedis.del("key01" , "key02"));
         System.out.println("获取多个键值对:"+jedis.mget("key01" , "key02" , "key03"));
         
         jedis.flushDB();
         System.out.println("==========新增键值对防止覆盖原先值=========");
         System.out.println(jedis.setnx( "key1", "value1"));
         System.out.println(jedis.setnx( "key2", "value2-new"));
         System.out.println(jedis.get( "key1" ));
         System.out.println(jedis.get ( "key2" ));
 ​
         System.out.println("==========新增键值对并设置有效时间============");
         System.out.println(jedis.setex("key3", 2,"value3"));
         System.out.println(jedis.get( "key3" ));
         try{
             TimeUnit.SECONDS.sleep(3 );
         }catch (InterruptedException e) {
             e.printStackTrace();
         }
         System.out.println(jedis.get ( "key3" ) ) ;
         System.out.println("==========获取原值,更新为新值========");
         System.out.println(jedis.getSet( "key2", "key2GetSet"));
         System.out.println(jedis.get ( "key2" ));
         System.out.println("获得key2的值的字串:"+jedis.getrange("key2",2,4));
     }

对List操作的命令

 public static void main(String[] args) {
         Jedis jedis = new Jedis("127.0.0.1",6379);
         jedis.flushDB();
         System.out.println("========添加一个list========" );
         jedis.lpush(" collections", "ArrayList", "Vector", "Stack","HashMap","weakHashMap","LinkedHashMap","");
         jedis.lpush("collections","HashSet");
         jedis.lpush("colllections","TreeSet");
         jedis.lpush("collections","TreeMap");
         //-1代表倒数第一个元素,0代表第一个元素
         System.out.println("collections的内容: "+jedis.lrange("collections",0,-1));
         System.out . println("collections区间0-3的元素:"+jedis.lrange("collections" ,0,3));
         System.out.println( "=============================" );
         //删除列表指定的值,第二个参数为删除的个数(有重复时),后add进去的值先被删,类似于出栈
         System.out .println("删除指定元素个数:"+jedis.lrem("collections",2,"HashMap"));
         System.out.println( " collections的内容: "+jedis.lrange("collections",0,-1));
         //截断元素
         System.out.println("删除下表0-3区间之外的元素:"+jedis.ltrim("collections",0,3));
         System.out.println( " collections的内容: "+jedis.lrange("collections",0,-1));
         System.out .println("collections列表出栈(左端): "+jedis.lpop("collections"));
         System.out.println( "collections的内容: "+jedis.lrange("collections",0,-1));
         System.out .println(" collections添加元素,从列表右端,与lpush相对应:"+jedis.rpush("collections","EnumMap"));
         System.out. println(" collections的内容: "+jedis.lrange("collections",0,-1));
         System.out.println( " collections列表出栈(右端):"+jedis.rpop("collections"));
         System.out.println( " collections的内容: "+jedis.lrange("collections",0,-1));
         System.out.println("修改collections指定下标1的内容: "+jedis.lset("collections",1,"LinkedHashMap"));
         System.out.println(" collections的内容: "+jedis.lrange("collections",0,-1));
         System.out.println("==============================" );
         System.out.println("collections的长度:"+jedis.llen("collections"));
         System.out.println("获取collections下标为2的元素: "+jedis.lindex("collections",2));
         System.out.println( "=============================" );
         jedis.lpush("sortedList","3","6","2","0","7","4");
         System.out .println( " sortedList排序前:"+jedis.lrange("sortedList",0,-1));
         System.out.println(jedis.sort("sortedList"));
         System.out.println("sortedList排序后:"+jedis.lrange("sortedList",0,-1));
     }

对Set操作的命令

public static void main(String[] args) {
         Jedis jedis = new Jedis("127.0.0.1",6379);
         jedis.flushDB();
 ​
         System.out.println(" ===========向集合中添加元素(不重复)===========");
         System.out.println(jedis.sadd("eleSet","e1" , "e2" , " e4" ," e3" , "e0" , " e8" ,"e7" ,"e5"));
         System.out.println(jedis.sadd("eleSet","e6"));
         System.out.println("eleset的所有元素为: "+jedis.smembers("eleSet"));
         System.out.println("删除一个元素e0: "+jedis.srem("eleSet","e0"));
         System.out.println("eleSet的所有元素为: "+jedis.smembers("eleSet"));
         System.out.println("删除两个元素e7和e6: "+jedis. srem("eleSet","e7" , " e6"));
         System.out.println("随机的移除集合中的一个元素:"+jedis.spop("eleSet"));
         System.out.println("eleSet中包含元素的个数:"+jedis.scard("eleSet"));
         System.out.println("e1是否在eleSet中: "+jedis.sismember("eleSet","e1"));
         System.out.println("====================================");
         System.out.println(jedis.sadd("eleSet2","e1" , "e2" , " e4" , "e3" , " eo" , " e8" ));
         //从eleSet1移动元素e1到eleSet3中
         System.out.println("将eleset1中删除e1并存入eleset3中:"+jedis.smove("eleSet1"," eleSet3"," e1"));
         System.out.println("将eleSet1中删除e2并存入eleset3中:"+jedis.smove("eleSet1","eleSet3","e2"));
         System.out.println("eleSet1中的元素:"+jedis.smembers( "eleSet1"));

         System.out.println("==================集合运算===================");
         System.out.println("eleSet1中的元素:"+jedis.smembers("eleSet1"));
         System.out.println("eleSet1和eleSet2的交集: "+jedis.sinter("eleSet1", "eleSet2"));
         System.out.println("eleSet1和eleSet2的并集: "+jedis.sunion("eleSet1" , "eleSet2"));
         System.out.println("eleSet1和eleSet2的差集: "+jedis.sdiff("eleSet1" ,"eleSet2" ));//eleSet1中有eleSet2中没有的元素显示是出来
         jedis.sinterstore("eleSet4","eleSet1","eleSet2");//求交集并将交集保存到eleSet4的集合
         System.out.println("eleSet4中的元素: "+jedis.smembers("eleSet4"));
     }

对Hash操作的命令

public static void main(String[] args) {
 ​
         Jedis jedis = new Jedis("127.0.0.1", 6379);
         jedis.flushDB();
 ​
         Map<String, String> map = new HashMap<>();
         map.put("key1", "value1");
         map.put("key2", "value2");
         //添加名称为hash (key) 的hash元素
         jedis.hmset("hash", map);
         //向名称为hash的hash中添加key为key5,value 为value5元素
         jedis.hset("hash", "key5", "value5");
         //返回hash的全部元素
         System.out.println("散列hash的所有键值对为: " + jedis.hgetAll("hash"));
         //返回hash键值对的全部键
         System.out.println("散列hash的所有键为: " + jedis.hkeys("hash"));
         //返回hash键值对的全部值
         System.out.println("散列hash的所有值为: " + jedis.hvals("hash"));
         System.out.println("将key6保存的值加上一个整数,如果key6不存在则添加key6: " + jedis.hincrBy("hash","key6",6));
         System.out.println("散列hash的所有键值对为: " + jedis.hgetAll("hash"));
         System.out.println("将key6保存的值加上一个整数,如果key6不存在则添加key6: " + jedis.hincrBy("hash","key6",9));
         System.out.println("删除一个或者多个键值对: " + jedis.hdel("hash","key2"));
         System.out.println("散列hash中键值对的个数: " + jedis.hlen("hash"));
         System.out.println("判断hash中是否存在key2: " + jedis.hexists("hash","key2"));
         System.out.println("获取hash中的值: " + jedis.hmget("hash","key2"));
     }

对Zset操作的命令

所有的api命令,就是我们对应的上面学习的指令,一个都没有变化!

明天继续加油!!!

...全文
59 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕【复现IEEE二区文献】基于状态空间表示与组件连接法的构网型逆变器统一小信号建模框架研究,提出了一种适用于多控制策略构网型逆变器的小信号建模方法。该方法结合状态空间建模理论与组件连接法(Component Connection Method),实现了对复杂逆变器系统动态特性的精确描述,尤其适用于分析系统在不同运行工况下的稳定性。通过Matlab代码实现,构建了包含控制环路、滤波器、锁相环等关键模块的完整小信号模型,并利用特征值分析与模态参与度评估系统稳定性,解决了传统建模方法在面对多时间尺度、强耦合非线性控制结构时建模困难、精度不足的问题。研究还探讨了关键控制参数对系统稳定边界的影响,为构网型逆变器的参数整定与优化设计提供了理论依据和技术支撑。; 适合人群:具备电力电子、自动控制理论基础,从事新能源发电、微电网、电力系统稳定性研究的研究生、科研人员及工程技术人员,尤其适合致力于高水平期刊论文复现与仿真实践的科研工作者。; 使用场景及目标:① 掌握构网型逆变器统一小信号建模的核心方法,复现IEEE二区高水平文献成果;② 理解状态空间法与组件连接法在复杂电力电子系统建模中的集成应用;③ 利用Matlab进行特征值分析与稳定性判据研究,支撑科研仿真与论文写作;④ 为多逆变器并联系统、微电网稳定性分析等课题提供建模工具与技术路线参考。; 阅读建议:建议读者结合Matlab代码与文中建模流程逐步调试,重点关注各子模块状态方程的推导与系统整体矩阵组装过程,深入理解控制参数对系统极点分布的影响规律,建议配合其他稳定性分析案例进行对比学习以加深理解。

151

社区成员

发帖
与我相关
我的任务
社区描述
开源数据库
其他 其他
社区管理员
  • 数据库小助手
  • 灰小猿
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧