redis Zset

每个值都有一个分数

image-20210809203057248

zset操作指令

zadd myzset 10 java 20 php 30 ruby 40 cpp 50 python

zrange myzset 0 -1 withscores

zrevrange myzset 0 -1 withscores

zrangebyscore myzset 20 30

zrem myzset php cpp 移除

zcard myzset 统计还有多少

zcount myzset 20 60

zcount myzset 20 60

zrank myzset java

zscore myzset java

应用

image-20210809204202227

排行榜

maven是用来下载依赖和打包代码的工具。

本章主要简单介绍maven的下载以及配置

  • 1.maven的下载
  • 2.环境变量的配置
  • 3.配置文件的配置
  • 4.idea设置

1.maven的下载与安装

maven可以直接从官网下载最新的版本。

maven版本太高或者太低都会有兼容性问题,目前(2021/7)推荐使用3.3.*至3.6.*之间。其中binaries是编译好的文件,source是源代码,需要重新编译。推荐下载binaries版本。

https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/

下载后直接解压即可,我将目录移至了C:\Program Files下,如图

maven

2.环境变量的配置

配置maven前,需要检查Java是否已经配置。

java

如果没有的话,需要同时配置java和maven的环境变量

如下图,在环境变量的系统变量中添加JAVA_HOME和MAVEN_HOME,分别为安装路径

home

之后将java和maven的bin、路径分别添加到path中

bin

win10以下版本如下图

![win7 maven](C:\Users\admin\Desktop\win7 maven.JPG)

最后在cmd中输入mvn-v ,可以正常查到即可

maven版本

3.配置文件的配置

maven

打开maven目录下的conf目录,

conf

打开settings.xml配置仓库的本地路径和远程仓库路径。

如果不配置,那么远程仓库路径是国外路径,速度较慢;默认依赖下载路径为

C:\Users\admin\.m2\repository

C盘用户下的repository路径。

在settings中添加

<localRepository>D:\repository</localRepository>

在mirrors中添加

1
2
3
4
5
6
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/central/</url>
</mirror>

最后结果如图

settings

4.idea设置

idea的设定分为项目设定和全局设定,如果要每次打开idea都使用配置好的maven,在打开界面选择

Configure->Settings->Maven

Maven home directory选择设定好的版本,local repository就会自动变更,如果没有自动变更说明上一步配置文件设置错了,至此maven就已经配置好了。

idea

Reentranlock

thread1 执行业务代码lock

把aqs里的state改成1 cas操作aba,aba操作加版本号

park和unpark可以指定线程

非公平锁的体现,前线程执行完以后,unpark的线程和新来的线程同时抢占锁

公平锁和非公平锁的区别:

只能队列里面的抢占,可以队列里面的线程和刚进来的线程

redis配置

  1. 查看6379(或者自定义redis端口)时候打开
    • firewall-cmd –query-port=6379/tcp 如果返回no则端口没有开启
    • firewall-cmd –add-port=6379/tcp (加 –permanent 永久有效),返回success说明开启成功

lock和synchronize的区别

1.lock支持公平与非公平锁,synchronize非公平锁

2.

excute–addworker—

int c = ctl.get()

判断线程池线程数量是不是小于corepoolsize

addworker

new 一个worker

worker.start

runworker

run方法

111 01111

hexo常用指令

安装git

apt-get install git

安装nodejs

apt-get install nodejs

apt-get install npm

node -v

npm -v

安装hexo

install -g hexo-cli

hexo -v

初始化hexo

hexo init myblog

cd myblog //进入这个myblog文件夹

npm install

hexo g

hexo server

打开hexo的服务,在浏览器输入localhost:4000就可以看到你生成的博客了。

GitHub创建个人仓库

创建一个和你用户名相同的仓库,后面加.github.io

新建分支仓库

master用于存放hexo数据,分支用于存放代码,用于分布式使用

github添加ssh

git config –global user.name “yourname”

git config –global user.email “youremail”

git config user.name

git config user.email

ssh-keygen -t rsa -C “youremail”

ssh -T git@github.com

将hexo部署到github

deploy:

type: git

repo: https://github.com/YourgithubName/YourgithubName.github.io.git

branch: master

hexo clean

hexo generate

hexo deploy

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

ACID

原子性:一起提交

一致性:都对都错

隔离性:都有事务

持久性:保持到磁盘

required_new 多个事务

required 一个事务

netst 分成多个事务

事务失效:this,not public ,

1.jvm进行篇

1.1内存分配

是否私有
程序计数器 私有 没有oom
虚拟机栈 私有 局部变量表,每个方法是一个栈帧,方法返回地址,静态链接,动态链接,基本数据类型
本地方法栈 私有 调用native方法
方法区(元空间) 公有 类信息,常量,静态变量,数据符号引用
公有 老年代,新生代(eden,s0,s1);stw,minorgc,majorgc,fullgc;new产生的实例

虚拟机栈:

静态链接:Map map = new HashMap();

动态链接:map.get();

堆:

stw:内存满了,垃圾回收,触发stw。

新生代为什么分为Eden区,s0,s1;避免垃圾回收产生大量碎片

新:老=1:2

//虚拟机栈:8中基本数据类型,对象引用

//堆:new

//方法区:类的描述信息,常量,静态变量,符号引用

spring自动装配

IOC流程

1.我们要把所有托管给spring管理的bean拿到,beandefination并且放到一个map里面

2.getbean 实例化,进行属性注入,

3.初始化bean,是否实现了beannameaware

4.是否实现了beanpostprocessor类,调用postprocessbefore…

5.初始化方法

6.是否实现了beanpostprocessor类,调用postprocessafter… aop在这里实现

入口在refresh()里面

扫描

1.默认会扫描当前目录以及子目录下@service @component @controller @repository

springboot手写starter

spring.factories