- 博客(27)
- 收藏
- 关注
原创 MySQL面经整理
1、数据库的常用引擎InnoDB(默认)MyisamMemory2、InnoDB和MyISAM的区别InnoDB和Myisam的默认索引都是B+tree,不同的是MyISAM的B+树叶子节点存放的是数据的磁盘地址,InnoDB的B+树叶子节点存放的是完整的数据记录InnoDB支持事务、外键、2种锁(行锁(默认)、表锁),写入操作快,Mysql5.6版本以上才支持全文索引(全文索引不支持中文)MyISAM支持表锁,不支持行锁如果没有显示在表定义时指定主键,I.
2020-09-03 19:28:26 477
原创 Redis面经整理
1、Redis是什么?redis是由C语言开发的、开源的、高性能键值对的内存数据库,可用作缓存、消息中间件,支持10万QPS,工作线程为单线程,是线程安全的。Redis是单线程的,但Redis为什么这么快?完全基于内存,绝大部分操作都是纯内存操作,速度非常快。数据结构简单,对数据操作也简单,Redis中的数据结构是专门经过设计的采用单线程,避免了不必要的上下文切换和竞争条件,不用去考虑各种锁的问题,所以也就不存在加锁释放锁操作,更不会出现死锁而导致性能的消耗使用多路IO复用模型,非阻塞IO;(
2020-09-03 19:24:37 711
原创 go-redis使用之ZSet有序集合
go-redis ZSet有序集合操作->go-redis String字符串操作详解->go-redis List列表操作详解->go-redis Hash哈希操作详解ZSet(sorted set):有序不重复集合ZSet的每个元素都会关联一个float64类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数
2020-06-30 21:23:43 7261
原创 go-redis使用之Set集合
go-redis Set集合操作Redis 的 Set 是 无序不重复集合Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。go-redis string使用笔记????go-redis List使用笔记????go-redis Hash使用笔记go-redis源码地址:https://github.com/go-redis/redisfunc GetRed
2020-06-30 16:29:06 4570
原创 go-redis使用之Hash字典
go-redis Hash操作在Redis中,hash哈希被称为字典(dictionary),Redis的字典使用哈希表作为底层实现hash更适合用来存储对象,例如:user,name:张三,age:18 等。。。–> go-redis List列表操作–> go-redis String字符串操作func GetRedisClient()*redis.Client{ return redis.NewClient(&redis.Options{ Addr:
2020-06-30 15:03:35 3910
原创 go-redis使用之List列表
go-redis List列表操作基本的数据类型:List 列表在redis里,可以把list作为栈、队列、阻塞队列在redis里,所有的list命令都是l开头的~func GetRedisClient()*redis.Client{ return redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", DB:
2020-06-30 11:18:26 5239 1
原创 go-redis使用之String字符串
????????????golang: go-redis使用func GetRedisClient()*redis.Client{ return redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", DB: 0, })}func redisTest(cli *redis.Client){ defer cli
2020-06-29 23:18:39 1451
原创 Go语言time包用法总结
一.时间类型概述在Go语言中时间类型不是关键字而是使用time包下Time结构体time 包提供了时间的显示和计量用的功能。日历的计算采用的是公历时间类型默认显示为UTC,所以经常需要把时间类型转换为字符串,显示成我们所熟悉的格式1.1 Location代表一个地区,并表示该地区所在的时区(可能多个)。Location 通常代表地理位置的偏移,比如 GMT东八区time 包提供了 Location 的两个实例:Local 和 UTC。Local 代表当前系统本地时区;UTC 代表通用协调时间
2020-06-19 14:11:36 1184
原创 Docker网络详解+部署集群测试
Docker网络理解网络Docker0三个网络# docker 是如何处理容器网络访问的?[root@server /]# docker run -d -P --name tomcat01 tomcatDigest: sha256:ce753be7b61d86f877fe5065eb20c23491f783f283f25f6914ba769fee57886bStatus: Downloaded newer image for tomcat:latest7b1d0acb9d1b573b238
2020-06-15 11:14:37 1148 2
原创 DockerFile构建及发布自己的镜像
DockerFileDockerFile介绍docfile是用来构建docker镜像的文件(命令参数脚本)构建步骤编写一个dockerfile文件docker build 构建成为一个镜像docker run 运行镜像docker push 发布镜像DockerHub阿里云镜像仓库会发现很多官方的镜像都是基础包,很多功能都没有,我们通常自己搭建自己所需要的镜像DockerFile的构建过程基础知识:每个保留字(指令)都必须是大写字母执行的顺序是从上到下#表示注释
2020-06-15 11:06:33 981
原创 Docker数据持久化--容器数据卷
什么是容器数据卷?docker理念回顾:将应用和环境打包成一个镜像!数据问题:如果数据都在容器中,容器删除,数据会丢失需求:数据可以持久化,例如mysql的数据可以存在本地容器与本地之间可以有一个数据共享的技术,Docker容器中的数据,同步到本地这就是卷技术!我们将容器内的目录挂载到Linux上面总结:容器的持久化和同步操作,容器间也是可以数据共享的使用数据卷方式1:直接使用命令挂载(-v)命令:docker run -it -v /宿主机目录:/容器目录[root@server
2020-06-15 10:59:42 273
原创 Docker详解--镜像
Docker镜像讲解镜像是什么?镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件的所有内容,包括代码、运行时、库、环境变量、配置文件等。所有的应用直接打包docker镜像,就可以直接跑起来如何得到镜像:远程仓库下载拷贝自己制作镜像Docker镜像加载原理UnionFS(联合文件系统)UNionFS(联合文件系统):Union文件系统是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可
2020-06-15 10:47:02 139
原创 Docker容器、镜像常用命令
Docker的常用命令帮助命令docker version #显示docker的当前版本信息docker info #显示docker系统信息(包括镜像和容器的数量)docker 命令 --help #帮助命令帮助文档的地址https://docs.docker.com/reference/镜像命令docker images:查看本地主机的所有镜像[root@server ~]# docker images --helpUsage: docker images [OPTI
2020-06-15 09:53:23 329
原创 Docker安装(底层原理)
Docker安装环境准备Linux基础CentsOS 7环境准备#系统内核是3.10以上的[root@VM_0_3_centos /]# uname -r3.10.0-1062.18.1.el7.x86_64#系统版本[root@VM_0_3_centos /]# cat /etc/os-releaseNAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"
2020-06-15 09:47:18 131
原创 Docker概述、历史、简介
Docker学习之路Docker概述Docker为什么会出现?Docker核心思想来自于集装箱—隔离Docker历史2010年,几个搞IT的年轻人在美国成立以一家公司docCloud,做一些pass的云计算服务,他们将自己的容器化技术,命名为Docker,刚诞生的时候没有引起行业的注意,由于公司活不下去,2013年Docker开源,从此走入开发者的视野,开源后每个月都会更新一个版本2014年4月9日,Docker1.0发布在容器技术之前,我们都是使用虚拟机技术VM虚拟机十分笨重,容器十分
2020-06-15 09:35:08 577
原创 MySQL数据库配置文件详解
库配置文件详解#password=88888888--mysql默认密码socket=/data/var/mysql/mysql.sock--mysql以socket方式运行的sock文件位置 [mysqld_safe]log-error=/var/log/mysqld.log--错误日志位置pid-file=/var/run/mysqld/mysqld.pid--进程id文件 [mysql]socket=/data/var/mysql/mysql.sock--mysql以soc
2020-06-14 22:46:33 1363
原创 MySQL数据库之索引及优化详解
索引MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的排好序的数据结构。索引的本质是分散存储的数据结构索引的数据结构二叉树(二叉排序树、二叉查找树)普通的二叉查找树存在缺陷,当数据阻止不规整时,插入的序列越接近有序,生成的二叉搜索树就越像一个链表,会出现类似链表一样的斜树,此时如果查询的数据是0007,和全局扫描没有区别平衡二叉树(AVL树)对于树中的任意一个节点,都有该节点的左子树的高度与右子树的高度只差的绝对值小于2存在的缺陷:搜索效率不足:一
2020-06-14 22:45:27 291
原创 MySQL数据库事务详解
简介:使用场景:MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!概念:有一条或者多条sql语句组成,要么都成功,要么都失败事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(**C**onsistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。**原子性:**一个
2020-06-14 22:37:14 309
原创 MySQL之DML(数据操作语言)
DML:数据操作语言插入数据:insert into 表名(字段名1,字段名2,···)values(值1,值2,···)特点:字段列表和值列表必须一一对应,包含类型、约束等必须匹配数值型的值,不用单引号,非数值型必须使用单引号字段名顺序无要求可一次行插入多条,并用逗号隔开更新数据:– 不指定条件会改动表所有数据update 表名 set 字段名1=‘value1’ , 字段名2=‘value2’ where [条件]删除数据:delete fr
2020-06-14 22:31:42 134
原创 MySQL之DDL(数据定义语言)
DDL:数据定义语言主要用于数据库和表的管理和操作库的管理创建数据库CREATE DATABASE IF NOT EXISTS stuDB删除数据库drop databses if exists stuDB;表的管理创建表:create table if not exists 表名(字段名 字段类型 【字段约束】,字段名 字段类型 【字段约束】,字段名 字段类型 【字段约束】);数据类型:整形:tinyint、samllint、int、bigint浮点型:floa
2020-06-14 22:28:06 184
原创 MySQL之连接查询+分页查询+联合查询
连接查询sql92和sql99的区别:**sql99使用join关键字替代了之前的逗号,并且将连接条件和筛选条件进行了分离,减少语法出错的几率,提高阅读性卡尔乘积现象:没有有效的连接条件内连接:语法: select 查询列表 from 表名1(别名1) [inner] join 表名2(别名2)… on 连接条件 where 筛选条件 group by 分组列表 having 分组后筛选 order by 排序列表等值连接://查询员工姓
2020-06-14 22:24:46 1235
原创 MySQL之常用函数
常用函数字符函数:concat()拼接字符SELECT CONCAT('hello',last_name,first_name) FROM employees;length()获取字节长度SELECT LENGTH('hello,郭襄') //12char_length()获取字符长度SELECT CHAR_LENGTH('hello,郭襄') //8substr(str,起始索引,截取的个数) 截取子串 substr(str,起始索引) //从起始索引到
2020-06-14 22:19:52 114
原创 MySQL查询(DQL)之基础查询+条件查询+排序查询
基础查询1. 查询常量:select 100;2. 查询表达式select 100%3;3. 查询到单个字段SELECT last_name FROM employees; 4. 查询多个字段SELECT last_name,email,department_id,employee_id from employees;5. 查询所有字段select * from employees;6. 查询函数(调用函数,返回数据)select DATABASE() //当前所使用
2020-06-14 22:12:06 163
原创 Mysql数据库连接(安装目录详解)
启动、关闭mysql服务前提是一定要把MySQL的bin目录配置到本机的环境变量中mysql.server start; --开启服务mysql.server stop; --关闭服务chkconfig mysql on --开机自启chkconfig mysql off --关闭开机自启ntsysv --查看是否开机自启数据库目录:ps -ef | grep mysql可以看到:–basedir=/usr/local/Cellar/mysql/8.0.19
2020-06-14 22:05:25 268
原创 JWT详解
什么是JWTJWT是一个非常轻巧的规范,这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息,一个JWT由三部分组成,Header头部、Claims载荷、Signature签名JWT (header)JWT头部承载两部分信息令牌类型:JWT加密算法:通常直接使用HMAC SHA256{"alg": "HS256","typ": "JWT"}有效载荷 (payload)有效载荷部分是JWT的主体内容(存放有效信息),同样也是一个json对象,JWT指定了七个默.
2020-06-14 21:57:42 1642 1
原创 Go圣经学习笔记
一、程序结构命名:Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线Go语言中类似if和switch的关键字有25个;关键字不能用于自定义名字,只能在特定语法结构中使用。 break default func i...
2020-03-30 15:03:10 122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人