Suniceman Blog

我干了什么 究竟拿了时间换了什么

Redis集群的原理和搭建

集群搭建记录

前言 Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用。单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文参考了Rdis的官方文档和使用Redis官方提供的Redis Cluster工具搭建Rdis集群。 注意 :Redis的版本要在3.0以上,截止今天,Redis的版本是3.2.9,本教程也使用3.2....

MySQL索引原理及慢查询优化

索引及优化

背景 MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也...

MongoDB 4.0 的新特性——事务(Transactions)

事务的使用

前言 相信使用过主流的关系型数据库的朋友对“事务(Transactions)”不会太陌生,它可以让我们把对多张表的多次数据库操作整合为一次原子操作,这在高并发场景下可以保证多个数据操作之间的互不干扰;并且一旦在这些操作过程任一环节中出现了错误,事务会中止并且让数据回滚,这使得同时在多张表中修改数据的时候保证了数据的一致性。 以前 MongoDB 是不支持事务的,因此开发者在需要用到事务的...

全文搜索引擎 Elasticsearch 入门

ElasticSear的安装及插件

安装 首先从官网下载安装包 此处我们选择2.4.6这个版本,然后下载tar压缩包 下载以后直接解压,就算安装完成了 1 tar zxvf elasticsearch-2.4.6.tar.gz 配置 编辑elasticsearch配置文件 1 2 3 4 # 进入安装目录 cd elasticsearch-2.4.6 # 编辑配置文件...

基于 SpringBoot2.0+优雅整合 SpringBoot+Mybatis

SpringBoot2.0 整合Mybatis以及多数据源的配置

SpringBoot 整合 Mybatis 有两种常用的方式,一种就是我们常见的 xml 的方式 ,还有一种是全注解的方式。我觉得这两者没有谁比谁好,在 SQL 语句不太长的情况下,我觉得全注解的方式一定是比较清晰简洁的。但是,复杂的 SQL 确实不太适合和代码写在一起。 Github 地址: springboot-integration-example ,欢迎各位 Star。 下面就开始...

MongoDB索引管理

创建索引,查看索引,删除索引,重建索引

创建索引 mongodb使用 ` createIndex() ` 和 ` ensureIndex() 方法来创建索引,前者用于3.0及以上版本,后者用于3.0以下版本。 语法: db.COLLECTION_NAME.ensureIndex(keys[,options]) ` keys:要建立索引的参数列表。如:{KEY:1},其中key表示字段名,1表示升序排序,也可使用使用数字-1降...

Docker 学习与实践

前言 1 `To Do` 备注 1 2 3 4 5 docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm docker images|grep none...

原生js实现瀑布流及微信小程序中使用左右两列实现瀑布流

两列实现瀑布流

使用css实现瀑布流并不实用,因为潮汕市实现的瀑布流都是以列来排列的,这里记录下用js实现瀑布流,以及微信小程序中使用左右两列来实现瀑布流 效果图 原生js实现瀑布流 html文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <div id="root"> <div class="item">...

Yii2 添加模块

Yii2基本应用程序模板

新建模块相关目录与文件 首先在根目录下新建modules目录,然后在该目录下面添加模块目录。假设我们这里需要加入用户模块,我们可将该目录命名为user,然后再在user目录下,分别添加models、views和controllers等三个目录。如下图所示: 加入模块类文件 我们可以将该类文件叫做Module.php, 注意, 该类需要继承\yii\base\Module...

线程的基本概念

如果说,在操作系统中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使 OS 具有更好的并发性。

线程的引入 如果说,在操作系统中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使 OS 具有更好的并发性。 由于进程是一个资源的拥有者,因而在创建、撤消和切换中,系统必须为之付出较大的时空开销。线程作为调度和分派的基本单位。 线程与进程的比较 线程具有许多传统进程所具有的特征,所以...