- 博客(82)
- 资源 (5)
- 收藏
- 关注
转载 消息中间件企业级应用
众所周知,消息中间件是大型分布式系统中不可或缺的重要组件。它使用简单,却解决了不少难题,比如异步处理,系统藕合,流量削锋,分布式事务管理等。实现了一个高性能,高可用,高扩展的系统。本章通过介绍消息中间件的应用场景,消息中间件的传输模式,ActiveMQ快速入门 三个方面来对消息中间件进行入门介绍。还在等什么,赶快来学习吧!说明:消息中间件非常强大,值得我们认真去学习和使用。完整代码请异步git...
2019-01-31 23:21:36 123
转载 mongodb学习和避坑
MongoDB 是一把双刃剑,它对数据结构的要求并不高。数据通过key-value的形式存储,而value的值可以是字符串,也可以是文档。所以我们在使用的过程中非常方便。正是这种方便给我们埋下了一颗颗地雷。当内嵌的文档太深,或者内嵌文档有相同的属性名。你会被炸得很惨。本章节通过 MongoDB简介,Shell编程,SpringBoot整合MongoDB,工作中注意事项,四个方面介绍MongoDB的...
2019-01-31 23:10:24 228
原创 Thymeleaf3语法详解
Thymeleaf是Spring boot推荐使用的模版引擎,除此之外常见的还有Freemarker和Jsp。Jsp应该是我们最早接触的模版引擎。而Freemarker工作中也很常见(Freemarker教程)。今天我们从三个方面学习Thymeleaf的语法:有常见的TH属性,四种标准表达式用法,在SpringBoot中的应用。还在等什么,一起来学吧!技术:Thymeleaf,SpringBo...
2019-01-31 22:41:49 143
原创 redis.conf配置文件解读
Redis 支持很多的参数,但都有默认值。 daemonize:默认情况下,redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为yes pidfile当Redis 在后台运行的时候,Redis 默认会把pid 文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个redis 服务时,需要指定不同的pid 文件和端口 bind指...
2019-01-31 22:32:29 457
原创 Redis操作之Keys与多实例
Keys简介在该系列中,主要讲述的是与Redis数据类型相关的命令,如String、List、Set、Hashes和Sorted-Set。这些命令都具有一个共同点,即所有的操作都是针对与Key关联的Value的。而该篇博客将主要讲述与Key相关的Redis命令。学习这些命令对于学习Redis是非常重要的基础,也是能够充分挖掘Redis潜力的利器。命令列表 命令原型 ...
2019-01-31 21:17:10 449
原创 jedis操作redis
jedis介绍 Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,下面我们就重点学习下J...
2019-01-31 21:14:51 115
原创 Redis主从复制
Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了。相信在阅读完之后你也可以轻松做到。这里我们还是先列出一些理论性的知识,后面给出实际操作的案例。 下面的列表清楚的解释了Redis Replication的特点和优势。 1). 同一个Master可以同步多个Slaves。 2). Slave同样可以...
2019-01-31 21:13:07 101
原创 Redis持久化 RDB和AOF
Redis持久化简介Redis提供了哪些持久化机制: 1). RDB(Redis DataBase)持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 2). AOF(Append Only File)持久化: 该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的...
2019-01-31 21:10:09 219
原创 redis cluster相关命令
下面介绍了一部分Cluster相关的命令,现在对所有的命令所以下说明。CLUSTER info:打印集群的信息。CLUSTER nodes:列出集群当前已知的所有节点(node)的相关信息。CLUSTER meet <ip> <port>:将ip和port所指定的节点添加到集群当中。CLUSTER addslots <slot> [slot ...]...
2019-01-31 21:08:42 313
原创 Redis事务
Redis事务简介和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制。在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石。相信对有关系型数据库开发经验的开发者而言这一概念并不陌生,即便如此,我们还是会简要的列出Redis中事务的实现特征: 1). 在事务中的所有命令都将会被串行化的顺序执行,事务执行期间,Redis...
2019-01-31 21:07:20 98
原创 redis数据结构简介及Strings
Redis的数据结构redis是一种高级的key:value存储系统,其中value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有序字符串集合(sorted sets)5.哈希(hashes)而关于key,有几个点要提醒大家:1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率...
2019-01-30 23:48:02 507
原创 Redis数据结构之set
Set简介在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。 和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的set容器是完...
2019-01-30 23:47:03 374
原创 Redis数据结构之sorted-sets
SortedSets简介Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。在...
2019-01-30 23:45:40 242
原创 redis数据结构list
ArrayList与LinkedList的区别 ArrayList使用数组方式存储数据,所以根据索引查询数据速度快,而新增或者删除元素时需要设计到位移操作,所以比较慢。 LinkedList使用双向链接方式存储数据,每个元素都记录前后元素的指针,所以插入、删除数据时只是更改前后元素的指针指向即可,速度非常快,然后通过下标查询元素时需要从头开始索引,所以比较慢...
2019-01-30 23:44:23 4856
原创 redis数据结构hash
Redis数据结构之hashHash存储结构Hash是一个string 类型的field和value的映射表。Hash特别适合存储对象,相对于将对象的每个字段存成单个string 类型。一个对象存储在Hash类型中会占用更少的内存,并且可以更方便的存取整个对象。我们简单举个实例来描述下Hash的应用场景,比如我们要存储一个用户信息对象数据,包含以下信息:用户ID为查找的key,存储的v...
2019-01-30 23:42:44 8049
原创 redis基本命令和help使用
1、redis基本命令1.1、获得符合规则的键名称keys 表达式(?,* ,[],\?)1.2、判断一个键是否存在exists key1.3、删除键del keydel key1 key21.4、批量删除[root@mycluster redis-3.0.3]# redis-cli del `redis-cli keys "*"`1.5、获得键值的数据类型type返...
2019-01-30 23:37:11 2768
原创 redis安装 linux redis install
导入安装包编译(make)从redis.io下载最新版redis-X.Y.Z.tar.gz后解压,然后进入redis-X.Y.Z文件夹后直接make即可,安装非常简单。make成功后会在src文件夹下产生一些二进制可执行文件,包括redis-server、redis-cli等等:$ find . -type f -executable./redis-benchmark //用...
2019-01-30 23:33:26 175
原创 nosql redis简介
Redisnosql简介随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题:对数据库高并发读写的需求 网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系...
2019-01-30 23:31:00 275
原创 spring JedisCluster操作rediscluster crud
jedisCluster测试代码 // 连接redis集群 @Test public void testJedisCluster() { JedisPoolConfig config = new JedisPoolConfig(); // 最大连接数 config.setMaxTotal(30); ...
2019-01-30 23:29:12 354
原创 Redis集群 install安装
集群原理redis-cluster架构图架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的...
2019-01-30 23:16:46 157
原创 linux 网络方面知识
http://blog.51cto.com/oldboy/784625网络通信的基本原理 使用vmware管理交换机桥接模式Host-only路由模式以下是查看虚拟机里面路由模式下的查看修改网关查看路由模式下的本地网关:(选择虚拟机中路由模式选中的网卡)设置网络管理host-only交换机:交换机下面有虚拟机:这台虚拟机i...
2019-01-29 22:50:02 1094
原创 sql 用户变量@使用
select * from (select t2.id,t2.category_name,t2.category_level,t2.parent_id,t2.checkBox,t2.sort from(select @r as _id,(select @r := parent_id from category where id=_id)as parent_id,@l :=@l+1 as lvl f...
2019-01-29 19:17:33 1858
原创 mongodb java crud项目中使用
最近项目上有个需求需要通过skuProperty查询出skuId,再通过skuId查询skuProperty,但是skuProperty最多有9个,通过mysql查询时即使分页查10条sku,关联属性查询有90多条吧,在navicat上执行得1.5s-2s,同一页面会多次调用此接口,有10s左右,所以需要优化,加缓存通过测试mongoDB可以满足需求,solr是否可以满足?查询数组的listkey...
2019-01-29 18:51:21 205
原创 Mongotop mongostat
Mongodb的性能监测工具Mongotop 观察N秒内,每个库上读写花费的时间Mongostatinserts 每秒插入query 每秒查询update 每秒更新delete 每秒删除getmore 每秒查询游标command 每秒总命令flushes 每秒同步次数mapped mmap内存大小(M)size 虚拟内存(M)res 物理内存(M)...
2019-01-29 00:25:49 397
原创 MongoDB备份(mongodump)和恢复(mongorestore) 导入(mongoimport)和导出(mongoexport)
MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe和mongorestore.exe文件 备份数据使用下面的命令:>mongodump -h dbhost -d dbname -o dbdirectory-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017-d:需要备份的...
2019-01-28 22:42:16 487
原创 MongoDB主从复制(主从集群 )
主从复制是MongoDB最常用的复制方式。这种方式非常灵活,可用于备份、故障恢复、读扩展等。最基本的设置方式就是建立一个主节点和一个或者多个从节点,每个从节点要知道主节点的地址。运行mongod --master就启动了主服务器。运行mongod --slave --source master_address 则启动了从服务器,其中master_address就是上面主节点的地址。Mong...
2019-01-28 22:42:04 201
原创 mongoDB java 增删改查crud
1、查询集合中所有文档Mongo mongo = new Mongo("localhost",27017);DB db = mongo.getDB("test");DBCollection collection = db.getCollection("customer");DBCursor dbCursor = collection.find();System.out.prin...
2019-01-28 22:41:52 134
原创 MongoDB安全和认证
每个MongoDB实例中的数据库都可以有许多用户。如果开启了安全性检查,则只有数据库认证用户才能执行读或者写操作。在认证的上下文中,MongoDB会将普通的数据作为admin数据库处理。admin数据库中的用户被视为超级用户(即管理员)。在认证之后,管理员可以读写所有数据库,执行特定的管理命令,如listDatabases和shutdown。在开启安全检查之前,一定要至少有一个管理员账...
2019-01-28 22:41:30 133
原创 mongo副本集replicaset
副本集就是有自动故障恢复功能的主从集群。主从集群和副本集最大的区别就是副本集没有固定的“主节点”;整个集群会选出一个“主节点”,当其挂掉后,又在剩下的从节点中选中其他节点为“主节点”,副本集总有一个活跃点(primary)和一个或多个备份节点(secondary)。以三个节点为例:1.创建目录/usr/local/mongodb/data[wj@localhost data]$ s...
2019-01-28 22:41:19 348
原创 MongoDB分片 sharding
分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以储存更多的数据,处理更多的负载。MongoDB分片的基本思想就是将集合切分成小块。这些块分散到若干片里面,每个片只负责总数据的一部分。应用程序不必知道哪片对应哪些数据,甚至不需要知道数据已经被拆分了,所以在分片...
2019-01-28 22:41:07 435
原创 MongoDB index
索引就是用来加速查询的。数据库索引与书籍的索引类似:有了索引就不需要翻遍整本书,数据库则可以直接在索引中查找,使得查找速度能提高几个数量级。在索引中找到条目以后,就可以直接跳转到目标文档的位置。默认是Btree索引2.4版本后可以加hash索引 1正序索引 -1倒序索引 collection和key分别代表集合和键名称 逗号隔开,做多个索引 mongoDB中所有1的地方可以用true...
2019-01-27 13:39:48 196
原创 MongoDB update
db.collection.update(criteria,objNew,upsert,multi) 参数说明:criteria:用于设置查询条件的对象objNew:用于设置更新内容的对象upsert:如果记录已经存在,更新它,否则新增一个记录,取值为0或1multi:如果有多个符合条件的记录,是否全部更新,取值为0或1 注意:默认情况下,只会更新第一个符合条件的记...
2019-01-27 13:36:20 245
原创 MongoDB $or $nor $exists 游标
• 查询集合中的文档 ,$or,相当于关系型数据库中的OR,表示或者的关系,例如查询name为user2或者age为3的文档,命令为:db.customer.find({$or:[{name:”user2”},{age:3}]})• 查询集合中的文档 ,$nor,表示根据条件过滤掉某些数据,例如查询name不是user2,age不是3的文档,命令为:db.customer.find...
2019-01-27 13:27:23 747
原创 MongoDB查询数组 $all $in $nin
• 查询集合中的文档 ,$all主要用来查询数组中的包含关系,查询条件中只要有一个不包含就不返回• 查询集合中的文档 ,$in,类似于关系型数据库中的IN • 查询集合中的文档 ,$nin,与$in相反 ...
2019-01-27 13:22:54 4117
原创 MongoDB查询集合中的文档 使用条件表达式 count sort skip limit
//大于: field > valuedb.collection.find({field:{$gt:value}});//小于: field < valuedb.collection.find({field:{$lt:value}});//大于等于: field >= valuedb.collection.find({field:{$gte:value}});...
2019-01-27 13:16:43 308
原创 MongoDB中database、collection与document
• 查看所有数据库,使用命令 show dbs• 查看当前所在数据库,使用命令 db创建数据库:use mydb1删除数据库:db.dropDatabase()use 命令后跟的数据库名,如果存在就进入此数据库,如果不存在就创建,所以这种创建方式又叫隐式创建 注意:使用命令use mydb1创建数据库后,并没有真正生成对应的数据文件,此时数据库只存在内存中,没有flus...
2019-01-27 12:25:41 3610
原创 MongoDB数据类型
数据类型 描述 举例null 表示空值或者未定义的对象 {"x":null}布尔值 真或者假:true或者false {"...
2019-01-27 12:25:19 131
原创 MongoDB简介优点与关系型数据库对比
MongoDB是用C++语言编写的非关系型数据库。特点是高性能、易部署、易使用,存储数据十分方便,主要特性有:面向集合存储,易于存储对象类型的数据模式自由支持动态查询支持完全索引,包含内部对象支持复制和故障恢复使用高效的二进制数据存储,包括大型对象文件存储格式为BSON(一种JSON的扩展) ...
2019-01-27 12:22:12 397
原创 NoSql简介、优点和缺点
NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 。是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。 关系型数据库中的表都是存储一些格式化的数据结构,每条记录的字段的组成都一样,即使不是每条记录都需要所有的字...
2019-01-27 12:18:32 2511
mongodb学习笔记资料
2019-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人