Redis-03-redis 整合 spring 常见写法 jedispool 实现方式
背景
有时候我们需要使用 spring 整合 redis。
那应该怎么实现呢?
最简单的 jedis
maven
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3...
2018-12-12 02:11:55 |
Cache
Mongo Java Driver-01-authMechanism 认证方式
业务背景
需要兼容云上云下的代码。
在云下,用的时 v3.4.6 比较老的版本,为了上云方便,云上申请的也是 v3.4 版本。
阿里云没有小版本,经验证 db.version() 也是 v3.4.6
以为一切都没有问题之后,结果遇到一个坑:
云下的验证方式,默认是 MONGODB-CR 方式,但是云上是 SCRAM-SHA-1 方式。
为什么不通
因为 MONGODB-CR ...
2018-12-11 03:35:23 |
Database
Mongo Java Driver-00-java 访问 mongo
官方资料
mongo-java-driver
建议学习方式:
烂笔头是个好东西
现在学的无论多么好,3年后估计也会忘掉。
整理下来,理论成为博客,实战成为代码。
java-driver
基础的入门整合。
至于细节,则不用展开。
理论上 API 和实际是一一对应的。
spring 整合
spring-data 整合
项目实战
mongodb 与 log4j2
拓展阅...
2018-12-11 03:35:23 |
Database
Mongo 54-mongo data migrate 数据迁移
背景
有时候希望将一个库的数据迁移到另一个库中。
代码实现当然也是可以的,不过感觉有些麻烦。
mongodb 本身应该就自带的特性支持。
相同实例
use db_source;
var docs = db_source.collection_souce.find();
use db_target;
docs.forEach({db.collection_target.insert(...
2018-12-10 03:35:23 |
Database
Mongo 53-mongo indexes 索引如何备份
查看所有索引信息
MongoDB索引的元信息(描述信息)存储在local数据库的集合system.indexes中,这是系统提供的保留集合(创建数据库时),我们不能对其进行插入或删除操作,但我们可以从中查看索引定义的相关信息。
system.indexes 集合中包含了每个索引的详细信息,可以通过下面的命令查询已经存在的索引,例如:
db.system.indexes.find()
...
2018-12-10 03:35:23 |
Database
Mongo 52-读写分离
业务背景
访问 mongodb 有时候会出现不稳定的情况。
以前使用 v3.4.6 主从复制存在 BUG,所以一直没有使用读写分离。
现在升级到 v4.0,决定使用读写分离并且使用相对稳定的机器环境。
双管齐下,保证系统的稳定性。
mongo的集群方式有三种:
Replica Set(副本集)
其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,...
2018-12-10 03:35:23 |
Database
Mongo 51-mongo expire mongo 过期索引 TTL Index
如何优雅删除
ttl index 作用
有些类似于 redis 的 expire,设置之后,mongo 会有一个异步进程去定时清理数据信息。
应用场景
现在的 mongo 中存放每天的数据信息,前一天的数据信息会进行清空。
原来是采用定时任务清空的方式。
定时任务虽然可以指定时间,但是对于 mongo 的瞬时压力还是很大的。
解决方式
使用 ttl index
TTL In...
2018-12-10 03:35:23 |
Database
Mongo 分片平衡器-50-优化实战
初始化
创建 collection
可以跳过,插入数据会默认创建。
初始化数据
for(i=1;i<=10000;i++){db.test.insert({"id":i,"name":"test", "amount": i+10000})}
for(i=1;i<=10000;i++){db.test.insert({"id":i,"name":"test2", "am...
2018-12-10 03:35:23 |
Database