XieYi's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
think && record something

Redis-线程模型,事务

[TOC] redis 为什么快 基于内存:Redis 是一种基于内存的数据库,数据存储在内存中,数据的读写速度非常快,因为内存访问速度比硬盘访问速度快得多。 单线程模型:Redis 使用单线程模型,这意味着它的所有操作都是在一个线程内完成的,不需要进行线程切换和上下文切换。这大大提高了 Redis 的运行效率和响应速度。 多路复用 I/O 模型:Redis 在单线程的基础上,采用了I&
2021-07-30
Redis
#模型

Redis-数据类型

[TOC] redis 总是键值对存储。 key 总是 string。 value 有五种类型。 string!!概述为什么要自己设计 SDS 支持任意字符 高效 string 数据结构是简单的 key-value 类型。虽然 Redis 是用 C 语言写的,但是 Redis 并没有使用 C 的字符串表示,而是自己构建了一种 简单动态字符串(simple dynamic string,SDS)。相
2021-07-30
Redis
#basic

Mysql-索引

[TOC] 索引索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有:B+树和 Hash。Hash 索引不支持顺序和范围查询。 主键索引 vs 唯一索引主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。 唯一性索引列允许空值,而主键列不允许为空值。 主键列在创建时,已经默认为空值 + 唯一索引了。 主键可以被其他表引用
2021-07-30
Mysql
#索引

Mysql-事务

[TOC] 事务特性 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性: 执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的; 隔离性: 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; 持久性: 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库
2021-07-30
Mysql
#事务

Mysql-架构与存储引擎

[TOC] 问题char varcharchar和varchar都是用于在数据库中存储字符串的数据类型。它们之间的主要区别在于存储空间的使用方式: char是一种定长的数据类型,它的长度固定且在存储时会自动在结尾添加空格来将字符串填满指定的长度。char的长度范围是0-255, varchar是一种可变长度的数据类型,它只会存储实际的字符串内容,不会填充空格。因此,在存储短字符串时,varchar
2021-07-30
Mysql
#结构

Mysql-语法与常见优化思路

[TOC] sql 语法举例有一张表,三列:name,course(课程),score,查询出每个学生的总成绩并按从高到低排序。 SELECT NAME,SUM(score) FROM chengji GROUP BY NAME ORDER BY SUM(score) DESC; 顺序12345678Select FromJoin onWhereGroup byHavingOrder byLimi
2021-07-30
Mysql
#basic

Java并发-并发容器

同步容器collections 中有一些方法synchronizedlist: synchronizedmap: synchronizedcollection: 在遍历时容器发生了结构性变化,会报错。 写时复制的的 List 和 Setcopyonwritearraylist copyonwritearrayset 线程安全 迭代器不支持修改 每次修改时都会新建一个数组,复制进去。读都会访问原来的
2021-07-30
Java并发
#并发容器

Java并发-线程协作机制

wait、notify属于 Object 类中。 当条件不成立时,线程调用 wait 进入条件等待队列。 另一个线程修改了条件变量后调用 notify,调用 wait 的线程唤醒后需要重新检查条件变量。 显示条件sychronized:wait,notify reentranlock:显式条件-condition 接口:await,signal 线程中断协作工具类读写锁 reentrantread
2021-07-30
Java并发
#工具类

Java并发-线程池

优点 降低资源消耗。通过重复利⽤已创建的线程降低线程创建和销毁造成的消耗。 提⾼响应速度。当任务到达时,任务可以不需要的等到线程创建就能⽴即执⾏。 提⾼线程的可管理性。线程是稀缺资源,如果⽆限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使⽤线程池可以进⾏统⼀的分配,调优和监控 创建的两种方式实现 Runnable 接⼝和 Callable 接⼝的区别Runnable ⾃ Java 1
2021-07-30
Java并发
#线程池

Java并发-常见关键字

synchronized见《线程安全的机制》 CASCAS 是英文单词 CompareAndSwap 的缩写,中文意思是:比较并替换。CAS 需要有 3 个操作数:内存地址 V,旧的预期值 A,即将要更新的目标值 B。 CAS 指令执行时,当且仅当内存地址 V 的值与预期值 A 相等时,将内存地址 V 的值修改为 B,否则就什么都不做。整个比较并替换的操作是一个原子操作。 CAS 虽然很高效的解决
2021-07-30
Java并发
#关键字
12345

搜索