- 博客(48)
- 收藏
- 关注
原创 基于NodeJs+Express+MySQL 实现的个人博客项目
这个项目是一个基于Node.js和Express框架构建的简易博客系统,用户可以在该系统中进行注册、登录、发布文章、查看文章、删除文章以及留言等操作。项目利用MySQL数据库存储用户和文章数据,并通过前端页面提供用户友好的交互界面。
2024-12-17 22:36:55
1119
原创 Redis-集群操作
一个 Redis 集群包含 16384 个哈希槽(hash slot),每个键都属于这 16384 个哈希槽的其中一个。集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽, 其中 CRC16(key) 语句用于计算键 key 的 CRC16 校验和。集群中的每个节点负责处理一部分哈希槽。
2024-05-22 08:00:00
260
原创 Redis-集群
RedisCluster实现了对Redis的水平扩容,即启动N个Redis节点,将整个数据库分布存储在这N个节点当 中,每个节点存储总数据的1/N。RedisCluster通过分区(partition)来提供一定程度的可用性(availability):即集群有一部分节点失 效或者无法进行通讯,集群也可以继续处理命令。Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接,用 来交换彼此的信息。
2024-05-21 08:00:00
989
原创 Redis-主从复制-哨兵模式(Sentinel)
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独 立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
2024-05-20 21:36:25
406
原创 Redis-主从复制-复制原理
如果Master断开(宕机),Slave依然连接着Master,可以正常使用读操作,但是没有写操作。如 果Master恢复正常,Slave依旧可以直接获取Master写的信息。如果Slave断开(宕机),当该Slave重启成功,则会变为Master,需要通过slaveof 恢复成Slave, 只要变为Slave,立刻可以从Master同步所有数据。
2024-05-19 08:00:00
403
原创 Redis-主从复制一主多从
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后 者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从 节点只能有一个主节点。
2024-05-18 08:00:00
1581
原创 redis-悲观锁与乐观锁
悲观锁(Pessimistic Lock)每次去拿数据的时候都认为别人会修改,所以在每次拿数据的时候都会上锁,这样别人想拿这个数据就 会阻塞,直到它拿到锁。传统关系型数据库就用到很多悲观锁,比如行锁、表锁等。乐观锁(Optimistic Lock)每次去拿数据的时候都认为别人不会修改,所以不会上锁,但在更新的时候会判断一下在此期间别人有 没有去更新这个数据,可以使用版本号机制。乐观锁适用于多读的应用类型,可以提高吞吐量。Redis就 是乐观锁机制实现事务的。
2024-05-17 08:00:00
378
原创 Redis-Redis事务
1. Redis事务是一组命令的集合,一个事务中的所有命令都将被序列化,按照一次性、顺序性、排他 性的执行队列系列的命令。2. Redis单条命令保证原子性,但是事务不保证原子性,且没有回滚。事务中任意命令执行失败,其 余的命令仍会被执行。3. Redis事务没有隔离级别的概念。批量操作在执行前被放入缓存队列,并不会被实际执行,也就不 存在事务内的查询要看到事务里的更新,事务外查询不能看到。4. Redis事务的三个阶段: - 开始事务 - 命令入队 - 执行事务
2024-05-16 08:00:00
293
原创 Redis-持久化操作-AOF
以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只允许加文 件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,Redis重启的话就根据日志 文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
2024-05-15 08:00:00
547
原创 Redis-持久化操作-RDB
在指定的时间间隔内将内存的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照 文件直接读到内存里。
2024-05-14 08:00:00
740
原创 Redis-发布与订阅
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。
2024-05-13 08:00:00
438
原创 Redis-新数据类型-Hyperloglog
Hyperloglog 是一种基数估算统计,在输入元素的数量特别巨大时,计算基数所需的空间是固定的,并且很小。
2024-05-11 08:00:00
408
原创 Redis-新数据类型-Geospatia
GEO,Geographic,地理信息的缩写。该类型就是元素的二维坐标,在地图上就是经纬度。Redis基于该类型,提供了经纬度设置、查询、范围 查询、距离查询、经纬度Hash等常见操作。
2024-05-10 08:00:00
329
原创 Redis-新数据类型-Bitmaps
1. Bitmaps 本身不是一种数据结构,实际上它就是字符串(key 对应的 value 就是上图中的一串二进 制),但是它可以对字符串的位进行操作。2. Bitmaps 单独提供了一套命令,所以在 Redis 中使用 Bitmaps 和使用字符串的方法不太相同。可 以把 Bitmaps 想象成一个以位为单位的数组,数组的每个单元只能存储 0 和 1,数组的下标在 Bitmaps中叫做偏移量。
2024-05-09 08:00:00
954
原创 Redis-五大数据类型-Hash(哈希)
Hash是一个键值对的集合。Hash 是一个 String 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。Hash 是 Redis 中出现最为频繁的复合型数据结构,除了 dict 结构的数据会用到Hash外,整个 Redis 数据 库的所有 key 和 value 也组成了一个全局Hash,还有带过期时间的 key 集合也是一个Hash。
2024-05-08 12:36:41
1219
原创 Redis-五大数据类型-Zset(有序集合)
Zset与Set非常相似,是一个没有重复元素的String集合。不同之处是Zset的每个元素都关联了一个分数(score),这个分数被用来按照从低分到高分的方式排序集合中的元素。集合的元素是唯一的,但分数可以重复。因为元素是有序的,所以可以根据分数(score)或者次序(position)来获取一个范围内的元素。
2024-05-07 08:00:00
1319
原创 Redis-五大数据类型-Set(集合)
与List类似是一个列表功能,但Set是自动排重的,当需要存储一个列表数据,又不希望出现重复数据时,Set是一个很好的选择。Set是String类型的无序集合,它底层其实是一个value为null的hash表,所以添加、删除、查找的时间复杂度都是O(1)。一般来说,一个算法如果是O(1),随着数据增加,查找数据的时间不变。集合中最大的成员数为232−12^{32}-1232−1( 每个集合超过40亿个元素)。
2024-05-06 08:00:00
628
原创 Redis-五大数据类型-List(列表)
List是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。底层是一个双向链表,对两段操作性能极高,通过索引操作中间的节点性能较差。一个List最多可以包含232−12^{32}-1232−1个元素 ( 每个列表超过40亿个元素)。
2024-05-05 08:00:00
965
原创 Redis-五大数据类型-String(字符串)
- String是Redis最基本的类型,一个key对应一个value。- String是二进制安全的,意味着String可以包含任何数据,比如序列化对象或者一张图片。- String最多可以放512M的数据。
2024-05-04 08:00:00
1897
原创 Redis-概述-安装-基本知识
1. 多样的数据类型:Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset, hash等数据结构的存储。2. Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使 用。3. Redis的所有操作都是原子性的。4. 支持主从复制及集群。
2024-05-03 10:44:42
757
原创 MySQL-分页查询
MySQL 分页查询原则:- 在 MySQL 数据库中使用 LIMIT 子句进行分页查询。- MySQL 分页中开始位置为 0。- 分页子句在查询语句的最后侧。
2024-05-02 08:00:00
46
原创 MySQL-用户管理
MySQL 是一个多用户的数据库系统,按权限,用户可以分为两种:root 用户,超级管理员,和由 root 用户创建的普通用户。
2024-05-01 08:00:00
811
原创 MySQL-聚合函数
聚合函数也称之为多行函数,组函数或分组函数。聚合函数不象单行函数,聚合函数对行的分组进行操作,对每组给出一个结果。如果在查询中没有指定分组,那么聚合函数则将查询到的结果集视为一组。
2024-04-26 12:56:56
872
原创 MySQL-查询数据-练习
5.列出收入在 5,000 和 12,000 之间,并且在部门 20 或50 工作的雇员的名字和薪水。9.显示所有工作岗位是销售代表(SA_REP)或者普通职员(ST_CLERK),并且薪水不等于 2,500、3,500 或 7,000 的雇员的名字、工作岗位和薪水。4.显示所有在部门 20 和 50 中的雇员的名字和部门号,并以名字按字母顺序排序。3.显示所有薪水不在 5000 和 12000 之间的雇员的名字和薪水。2.创建一个查询,显示雇员号为 176 的雇员的名字和部门号。
2024-04-23 13:26:00
428
原创 MySQL-查询数据
- truncate 是整体删除(速度较快), delete 是逐条删除(速度较慢);- truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete 高的原因;- truncate 是会重置自增值,相当于自增列会被置为初始值,又重新从 1 开始记录,而 不是接着原- 来的值。而 delete 删除以后, 自增值仍然会继续累加。
2024-04-23 13:22:20
2175
原创 MySQL-DML操作
数据操作语言(DML:Data Manipulation Language)其语句,包括动词 INSERT,UPDATE 和 DELETE。它们分别用于添加,修改和删除表中的行。
2024-04-22 15:15:37
902
原创 MySQL-创建表与删除表-约束
数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。主键约束(Primary Key) PK主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。例如,学生信息表中的学号是唯一的。外键约束(Foreign Key) FK外键约束经常和主键约束一起使用,用来确保数据的一致性。唯一性约束(Unique)唯一约束与主键约束有一个相似的地方,就是它们都能够确保列的唯一性。
2024-04-21 14:47:39
1081
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人