分类目录归档:数据库

Redis数据持久化


Redis支持两种数据持久化方式:RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上,后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用,但是通常会将两者结合使用。

一、持久化

1.1、什么是持久化

持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。

1.2、持久化方式

Redis支持RDB和AOF两种持久化机制:

RDB(快照方式): RDB方式是一种快照式的持久化方法,将某一时刻的数据持久化到磁盘中。这种方式就是将内存中数据以快照的方式写入到二进制文件中 ,默认的文件名为dump.rdb。...

Read more

Redis数据类型


Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合)。 image-20240924084522795

一、字符串类型概述

1.1、数据类型

Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合)。

1.2、字符串简介

字符串类型是redis最基础的数据结构,首先键是字符串类型,而且其他几种结构都是在字符串类型基础上构建的,所以字符串类型为其他四种数据结构尊定了基础。

字符串类型实际上可以是简单的字符串、复杂的字符串(xml、json)、数字(整数、...

Read more

Redis基础命令


一、连接命令

ping

通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。

如果连接正常就返回一个PONG ,否则返回一个连接错误。

127.0.0.1:6379> ping
PONG

echo m

打印一个特定的信息 m ,测试时使用。

127.0.0.1:6379> echo 'hello world'
"hello world"

select i

切换到指定的数据库,数据库索引号 i 用数字值指定,以 0 作为起始索引值。默认使用 0号数据库。

127.0.0.1:6379> select 1
OK
127.0...

Read more

Redis概述


Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列...

Read more

MySQL高可用之MHA集群部署


MySQL高可用之MHA集群部署

01 准备工作

1.1 修改主机名

vim  /etc/hosts

# 添加对应主机
192.168.28.128 mha1
192.168.28.131 mha2
192.168.28.132 mha3

1.2 关闭防火墙及修改selinux

# 关闭防火墙
systemctl  stop  firewalld
systemctl  disable firewalld   # 关闭自启动

# 修改selinux
vim  /etc/sysconfig/selinux
SELINUX=disabled  #  设置为disabled

1.3 ...

Read more

MySQL8.0主从复制


一、主从复制介绍

mysqldump解决了mysql数据库的备份,它只是基于某个时间点做备份,无法解决实时备份的问题,为了解决mysql实时备份的问题,mysql官方推出了mysql主从备份机制,可以让用户通过设置mysql主从来实现数据库实时备份。

1、MySQL服务器宕机怎么办,单点故障

2、数据的安全

通过多台机器实现一主多从的方式来实现数据备份,主服务器负责让用户读写数据,从服务器负责同步主服务器数据,也可以承担用户读的任务。

至少两台机器

主从

将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库...

Read more

《Redis 设计与实现》读书笔记(二) 链表


链表

​ 链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。

​ 作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为 Redis 使用的 C 语言并没有内置这种数据结构,所以 Redis 构建了自己的链表实现。

​ 链表在 Redis 中的应用非常广泛,比如列表键的底层实现之一就是链表:当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis 就会使用链表作为列表键的底层实现。

​ 举个例子,以下展示的 integers 列表键包含了从 11024 共一千零二十四个...

Read more

《Redis 设计与实现》读书笔记(一)简单动态字符串


Redis 设计与实现

_images/cover.png

《Redis 设计与实现》一书全面而完整地讲解了 Redis 的内部运行机制, 对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍, 展示了这些功能的核心数据结构以及关键的算法思想。 通过阅读本书, 读者可以快速、有效地了解 Redis 的内部构造以及运作机制, 从而学会如何更高效地使用 Redis 。

购买本书请访问: 京东商城互动出版网(china-pub)亚马逊当当网 , 另外本书的 Kindle 版本多看阅读版本豆瓣阅读版本 也已有售。

第一部分:数据结构与对象

Redis 数据库里面的每个键值对(key-...

Read more

MySQL触发器


介绍

在 MySQL 中,触发器(Triggers)可以在数据表上的数据更改时自动执行特定的操作。

触发器是与表有关的数据库对象,指在 insert/update/delete 之前或之后,触发并执行触发器中定义的SQL语句集合。

触发器的这种特性可以协助应用在数据库端确保数据的完整性 , 日志记录 , 数据校验等操作 。

使用别名 OLD 和 NEW 来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。(Oracle既有行级触发器,又有语句级触发器)

触发器类型 NEW 和 OLD的使用
INSERT 型触发器 N...

Read more

MySQL存储过程和函数


概述

存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程和函数的区别在于函数必须有返回值,而存储过程没有。

函数 : 是一个有返回值的过程 ;

过程 : 是一个没有返回值的函数 ;

优缺点

优点:

1. 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一次解析和优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中...

Read more