Redis常用命令
1、Redis基础命令1.1、对key操作
keys *: 查看当前库所有的key
exists <key>:判断某个key是否存在
type <key>:查看key的类型
del <key>:删除指定key的数据
unlink <key>:根据value选择非阻塞删除,异步删除
expire <key> 10:给key设置过期时间,单位秒
ttl <key>:查看还有多少秒过期,-1表示不过期,-2表示已经过期
1.2、其他命令
select 1:切换到1号库
dbsize:查看当前数据库的key数量
flushdb:清空当前库
flushall:通杀全部库
2、字符串(String)2.1、简介
String是Redis最基本的类型,key-value结构。
String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。
2.2、常用命令
set <k ...
Spring框架详解(下篇)-声明式事务
4、声明式事务4.1、JdbcTemplateSpring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作。
4.1.1、准备工作① 加入依赖1234567891011121314151617181920212223242526272829303132333435363738394041424344454647<dependencies> <!-- 基于Maven依赖传递性,导入spring-context依赖即可导入当前所需所有jar包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.20</version> </dependency> <!-- Spring 持久化层支持jar包 --> ...
Spring框架详解(中篇)-AOP
3、AOP3.1、场景引入假设我们要写一个计算器功能,我们首先声明一个接口,里面包含了加减乘除四个抽象方法,然后再编写实现类,去实现这个方法。代码如下:
计算器接口:
12345678910public interface Calculator { //加 int add(int i, int j); //减 int sub(int i, int j); //乘 int mul(int i, int j); //除 int div(int i, int j);}
实现类:
1234567891011121314151617181920212223242526272829public class CalculatorImpl implements Calculator { @Override public int add(int i, int j) { int result = i + j; System.out.println("方法内部 ...
Spring框架详解(上篇)-IOC
1、Spring概述1.1、Spring五大模块
功能模块
功能介绍
Core Container
核心容器,在Spring环境下使用任何功能都必须基于IOC容器
AOP&Aspect
面向切面编程
Testing
提供了对junit或TestNG测试框架的整合
Data Access/Integration
提供了对数据访问/集成的功能
Spring MVC
提供了面向Web应用程序的集成功能
1.2、Spring特性
非侵入式:使用 Spring Framework 开发应用程序时,Spring 对应用程序本身的结构影响非常小。对领域模型可以做到零污染;对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化。这就使得基于 Spring Framework 开发应用程序时结构清晰、简洁优雅。
控制反转:IOC——Inversion of Control,翻转资源获取方向。把自己创建资源、向环境索取资源变成环境将资源准备好,我们享受资源注入。
面向切面编程:AOP——Aspect Ori ...
Mybatis框架详解
1、项目搭建1.1、引入依赖12345678910111213141516171819202122232425262728<dependencies> <!-- Mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.10</version> </dependency> <!-- junit测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <sc ...
Java网络编程
Java网络编程
网络编程三要素:
IP地址:InetAddress: 网络中设备的标识,不易记忆,可用主机名
端口号:用于标识进程的逻辑地址
传输协议:通讯的规则常见协议:TCP,UDP
1、IP地址:InetAddress
唯一的标识Internet上的计算机(通信实体)
本地回环地址:127.0.0.1(主机名:localhost)
IP地址分类:IPV4和IPV6
IP地址分类方式2:公网地址(万维网使用)和私有地址(局域网使用)。192.168.开头就是私有地址,范围为192.168.0.0—192.168.255.255,专门为组织机构使用
特点:不易记忆
12345678910111213141516171819@Testpublic void test1() { try { //实例化InetAddress对象 InetAddress add1 = InetAddress.getByName("192.168.10.14");//根据ip实例化 System.o ...
Java反射
一、反射概述
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。
加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过镜子可以看到类的结构,所以,我们形象的称之为:反射。
动态语言:
是一类再运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以删除或是其他结构上的变化,通俗来说就是在运行时,代码可以根据某些条件改变自身结构。
如:C#、JavaScript、PHP、Python、Erlang。
静态语言:
与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。
Java不是动态语言,但是Java可以称之为“准动态语言”。即Java有一定的动态性,我们可以利用反射机制、字节码操作获得类似动态语言的特性。Java的动态性让编程时更加灵活。
Java反射机制提供的功能: ...
Java多线程
线程的创建与使用方式1:继承Thread类
创建一个继承于Thread类的子类
重写Thread类的run()方法
创建Thread类的子类对象
通过此对象调用start()方法
123456789101112131415161718192021222324252627282930313233343536//1.创建一个继承于Thread类的子类class MyThread extends Thread{ //2.重写Thread类的run()方法 @Override public void run() { //此处写要实现的代码 for (int i = 1; i <= 5; i++) { System.out.println(Thread.currentThread().getName() +"--> "+ i); } }}public class ThreadTest { publ ...
IO流详解
一、File类
File类的一个对象代表一个文件或文件夹。
File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序的一个File对象可能没有一个真实存在的文件或目录。
File对象可以作为参数传递给流的构造器。
1、构造器
构造器1:public File(String pathname)123456789101112131415161718/** * 以pathname为路径创建File对象,可以是绝对路径或者相对路径 * ->绝对路径:是一个固定路径,从根目录开始 * ->相对路径:是相对于某个位置开始 * 关于路径分隔符: * Windows:\\ (也支持‘/’) * Linux:/ * 也可以使用:File.separator,这个在不同的操作系统会自动适配不同的分隔符 *///相对路径:相对于当前项目/模块File file1 = new File("hello.txt& ...
Java枚举类
一、枚举类1、使用场景
当类的对象只有有限个,如:
周一到周五:Monday,……,Sunday
一年的四个季节:Spring,Summer,Autumn,Winter
订单状态:未付款,已付款,已配送,已发货,退货,已确认
线程状态:创建,就绪,销毁,运行,阻塞,死亡
当需要定义一组常量时,建议使用枚举类。
2、枚举类的定义
JDk5.0以后,可以使用enum关键字定义枚举类。
12345678910111213141516171819202122232425public enum Season { //定义枚举类对象,中间用","隔开 SPRING("春天","很温暖"), SUMMER("夏天","很炎热"), AUTUMN("秋天","很凉爽"), WINTER("冬天","很寒冷"); //声明Season属性 private final S ...