2019年11月12日

摘要: MySQL介绍 MySQL是由MySQLAB公司(目前已经被SUN公司收归麾下)自主研发的,目前IT行业最流行的开放源代码的数据库管理系统之一,它同时也是一个支持多线程高并发多用户的关系型数据库管理系统。 MySQL数据库以其简单高效可靠的特点,在最近短短几年的时间就从一个名不见经传的数据库系统,变 阅读全文
posted @ 2019-11-12 16:56 kexinxin 阅读(328) 评论(0) 推荐(0) 编辑

2019年11月4日

摘要: Redis AOF和RDB Redis是内存型数据库,为了保证数据在断电后不会丢失,需要将内存中的数据持久化到硬盘上。 RDB持久化 将某个时间点的所有数据都存放到硬盘上 可以将快照复制到其他服务器从而创建具有相同数据的服务器副本 如果系统发生故障,将会丢失最后一次创建快照之后的数据 如果数据量很大 阅读全文
posted @ 2019-11-04 23:37 kexinxin 阅读(284) 评论(0) 推荐(0) 编辑
摘要: KD树 1. 概述 KD树是一种查询索引结构,广泛应用于数据库索引中。从概念的角度讲,它是一种高纬数据的快速查询结构,本文首先介绍1维数据的索引查询,然后介绍2维KD树的创建和查询 2. 1维数据的查询 假设在数据库的表格T中存储了学生的语文成绩chinese、数学成绩math、英语成绩englis 阅读全文
posted @ 2019-11-04 22:37 kexinxin 阅读(17097) 评论(0) 推荐(0) 编辑

2019年10月29日

摘要: 关系型和非关系型数据库 非关系型数据库分类 由于非关系型数据库本身天然的多样性,以及出现的时间较短,因此,不想关系型数据库,有几种数据库能够一统江山,非关系型数据库非常多,并且大部分都是开源的。 这些数据库中,其实实现大部分都比较简单,除了一些共性外,很大一部分都是针对某些特定的应用需求出现的,因此 阅读全文
posted @ 2019-10-29 21:54 kexinxin 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 数据库实现分布式锁 基于数据库实现分布式锁 上面已经分析了基于数据库实现分布式锁的基本原理:通过唯一索引保持排他性,加锁时插入一条记录,解锁是删除这条记录。下面我们就简要实现一下基于数据库的分布式锁。 表设计 CREATE TABLE `distributed_lock` ( `id` bigint 阅读全文
posted @ 2019-10-29 20:51 kexinxin 阅读(1572) 评论(0) 推荐(0) 编辑
摘要: 单点登录 1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户从某种意义上觉得只登录了一次。 该方式缺点就是多次传送用户名 阅读全文
posted @ 2019-10-29 00:28 kexinxin 阅读(469) 评论(0) 推荐(0) 编辑

2019年10月27日

摘要: 数据库树形结构查询 Oracle实现方式 数据库树形结构,正反遍历 --从Root往树末梢递归 select level ,identity,pid from table_name start with identity=475 connect by prior identity = pid --从 阅读全文
posted @ 2019-10-27 23:16 kexinxin 阅读(2971) 评论(0) 推荐(0) 编辑

2019年10月26日

摘要: 层次遍历递归和非递归方法 如何遍历一棵树 有两种通用的遍历树的策略: 深度优先搜索(DFS) 深度优先搜索(DFS) 在这个策略中,我们采用深度作为优先级,以便从跟开始一直到达某个确定的叶子,然后再返回根到达另一个分支。 深度优先搜索策略又可以根据根节点、左孩子和右孩子的相对顺序被细分为先序遍历,中 阅读全文
posted @ 2019-10-26 21:53 kexinxin 阅读(4941) 评论(0) 推荐(0) 编辑
摘要: redis和数据库的缓存一致性问题 缓存的读取流程 缓存更新策略 按照数据库和缓存的更新顺序有两种更新策略:(1)先更新数据库,再更新缓存;(2)先删除缓存,再更新数据库。(3)先更新数据库,再删缓存 先更新数据库,再更新缓存 这套方案,大家是普遍反对的。为什么呢?有如下两点原因。 原因一(线程安全 阅读全文
posted @ 2019-10-26 21:29 kexinxin 阅读(811) 评论(0) 推荐(0) 编辑
摘要: redis分布式锁 单机版本 为什么要使用锁? 第一个是正确性,这个众人皆知。就像Java里的synchronize,就是用来保证多线程并发场景下,程序的正确性。JVM里需要保证并发访问的正确性,在分布式系统里面,也同样需要,只不过并发访问的单位,不再是线程,而是进程。 举个例子,一个文件系统,为了 阅读全文
posted @ 2019-10-26 15:51 kexinxin 阅读(373) 评论(23) 推荐(0) 编辑

导航