技术总结

1.redis

性能极高 的内存数据库Redis能读的速度是110000次/s,写的速度是81000次/s 。也支持数据的持久化,Redis支持数据的备份,集群事务,提供的数据类型特比较多list,set,zset,hash。

---集群,Redis支持数据的备份,即master-slave模式的数据备份。

         主备模式,只要作用是备份和负载均衡,减轻服务器压力,主主要写,从主要读,不能故障转移。

         哨兵模式,主备模式模式的升级,可以实现故障转移,配置哨兵配置文件,配置需要监控的redis。

---事务,原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。(事务)

---丰富的特性 – Redis还支持 list,支持栈和队列, 通知, key 过期等等特性。

说明:持久化:(rdb,redis退出时触发,备份数据,数据的完整性不是很好。foa,一日志形式记录命令,恢复是执行命令,记录的文件可能会很多,完整性好)

事务哨兵模式,持久化,集群,很多特性,没种数据类型也有自己的特性。

 

2.mq

   1.系统解耦,2异步通信,3解决并发消峰。

   支持五种模式,支持集群

   主备模式:如果主节点挂掉,从节点不会再得外提供服务。主节点正常时从节点可以减轻主节点服务的压力。不能做自动的故障转移。主节点写,从节点读,从不是真正的数据同步只是读。。

    镜像集群:是通过普通集群修改配置。主节点会同步数据到从节点,每个节点数据是一样的,主节点挂掉之后从节点可以对外提供服务,实现故障转移。

具体配置?

在普通集群的基础上添加策略,每个节点添加一次策略,命令如下:包含自动同步等。普通集群基础上添加策略一个命令完成镜像集群。

点:1.消息堆积:加线程,加消费者 2.重复消费,消费后查库,有就不再消费。3.消息丢失,开启手动确认模式。

 

3.sql及数据库优化

1、选取最适用的字段属性

MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。

例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。

2、使用连接(JOIN)来代替子查询(Sub-Queries)

MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。例如,我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户ID取出来,然后将结果传递给主查询,如下所示:

DELETE FROM customerinfo

WHERE CustomerID NOT IN (SELECT CustomerID FROM salesinfo)

连接(JOIN)..之所以更有效率一些,是因为MySQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作。

3、查询的时候避免使用*

4、使用索引

 

posted @ 2020-10-28 18:49  91程序猿  阅读(18)  评论(0编辑  收藏  举报