- 浏览: 291094 次
- 性别:
- 来自: 北京
博客专栏
-
云计算--hadoop
浏览量:11872
-
redis解说
浏览量:27155
-
MongoDB读书笔记
浏览量:16016
-
Maven读书笔记
浏览量:27245
-
Java通信
浏览量:13680
最新评论
-
sjzcmlt:
,一直读你的文章,写的真好
01_Redis非关系型数据库的安装 -
feng_zhi_zi510:
博主你好。我这有点问题始终没搞明白。关于继承的在父模块定义了依 ...
04_Maven核心_POM_聚合与继承 -
贝塔ZQ:
java实现excel的导入导出,也可是用插件进行实现的,Pa ...
java实现excel的导入导出(poi详解) -
TIMJAMES:
java实现excel的导入导出(poi详解) -
cheleiyan:
如何创建空的mave项目,用eclipse建的时候,选择哪个类 ...
04_Maven核心_POM_聚合与继承
文章列表
GridFS
mongoDB除了保存各种文档(JOSN结构)外还能够保存文件。GridFS规范提供了一种透明机制,可以将一个大文件分割成为多个较小的文档,这样的机制允许我们有效的保存大文件对象,特别对于那些巨大的文件,比如视频、高清图片等。
GridFS使用两个表来存储数据:
files:包含元数据对象
文件的元数据放在这个集合里面,默认fs.files。这个里面的每个文档表示GridFS中的一个文件,与文件相关的自定义元数据也保存在其中,除了用户自定义的键,GridFS还有默认的一些键:
_id:文件唯一的id,在块中为“files_id”键的值存储
length: ...
存储过程
关系型数据库的存储过程描述为:一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
mongoDB也有存储过程,但是mongoDB是用javascript来写的,这正是mongoDB的魅力。
保存存储过程
mongodb的存储过程是存放在db.system.js表中,我们先来一个简单的例子:
function add(x,y){
return x+y;
}
现在我们将这个存储过程保存到db.system.js的表中:
> db.system.js.save({"_ ...
1.$where
where可以接受一个javascript函数作为查询条件,并且迭代当前集合里面的所有文档,如果满足函数条件,则返回这个文档。最典型的就是比较文档中的两个键的值是否相等
//现在有下面这个集合,要找出库存和销量相同的记录
> db.foo.insert({"name":"apple","ku_cun":100,"xiao_liang":100});
> db.foo.insert({"name":"banana","ku_cu ...
find文档
1.find简介
使用find查询集合中符合条件的子集合
db.test.blog.find();
类似于sql查询
select * from test.blog
上面的查询是返回多有多有集合,并且是所有键。有时我们也会指定返回部分键,这样方式可以减少IO
> db.test.blog.find({},{"age":1,"name":1});
{ "_id" : 1, "age" : 1, "name" : "joe" }
{ & ...
增删改文档
数据库操作无非就是增、删、改、查。这篇主要介绍增、删、改。
1.增
Mongodb插入操作很简单,使用关键字“insert”。实例:
> db.test.blog.insert({"haha":"xiaohaha","abc":"123"})
> db.test.blog.find();
{ "_id" : ObjectId("5334dd149b7a445ea2166559"), "title" : "l ...
入门篇
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
在这里我们有必要先简单介绍一下非关系型数据库(NoSQL)
1.什么是NoSQL
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模 ...
我用的是window 64位操作系统,在mongodb官网下载适合自己操作系统的安装文件
下载地址:http://www.mongodb.org/downloads下载好后,你可以使mongodb简单服务简单启动。也可以直接注册成服务。我们这里直接将mongodb注册成系统服务,这样以后就不用每次都启动了。
下面是操作步骤:
1.下载。
2.解压。
3.在C盘根目录建立Mongodb的文件夹,并将解压文件放在文件夹下
4.在Mongodb文件下建立数据库文件夹data。data下面建立db和logs文件夹。在logs文件下建立log.txt文件
目录结构:
数据库文件:C:\ ...
Redis的订阅与发布
Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。作为例子, 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
上面描述了订阅与发布的关系。
现在我们使用几个客户端来模拟一下redis的订阅与发布
客户端一:
客户端二:
客户端三: 信息发布者: ...
Java操作redis
Java操作redis很简单。创建一个普通的Java工程。然后导入redis依赖的jar包。jar包我已经上传了。
1.入门级的demo
package com.bjsxt.test;
import redis.clients.jedis.Jedis;
public class RedisDemo {
public static Jedis getJedis(){
Jedis jedis = null;
jedis = new Jedis(FinalCollention.IP, 6379); //redis服务器的ip和端口
...
1.redis事务的概念
redis事务可以一次性执行多个命令,有两个重要的特性:
事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
2.redis事务的用法
redis实现事务控制有5个命令。这5个命令是事务的基础。
A.discard:取消事务,放弃执行事务块内的所有命令。B.exec:执行所有事务块内的命令。C.multi:标记一个事务块的开始。D.unwatch:取消 WATCH 命令对所有 key 的监视。E.w ...
redis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给cl ...
下一节将要聊一下ServerSocket。并且会创建多线程的服务器,所以在这里先普及一下多线程的基础知识
1.定义任务:
编写多线程可以实现接口Runnable
package com.tcp.test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class LiftOff implements Runnable {
protected int countDown = 5;
private static int taskC ...
1.服务器与客户端是怎样交互的?
服务器程序通过监听端口,来接收客户程序的连接请求。
ServerSocket server = new ServerSocket(8000); //监听8000端口
ServerSocket的构造方法负责在操作系统中注册一个端口8000,并且将当前服务注册为 ...
花了一上午找hibernate tools工具生成实体类时为什么没有生成带有中文注释的实体类?
找问题的思路:
1.在网上找资料,发现一个比较重要的信息:hibernate模板可以自定义,并且定义完后,打包成hibernate-tools.jar。存放的目录:%插件的HOME%\eclipse\plugins\org.hibernate.eclipse_3.2.4.GA-R200905070146-H18\lib\tools。
2.使用反编译工具,反编译这个jar包 程序员的直觉应该要看看pojo这个文件。然后使用UE打开pojoFields.ftl。发现里面的注释更实体类上的结构一致。 ...
1.物理层
物理层的任务就是为它的上一层提供物理连接,以及规定通信节点之间的机械和电器特征,如规定电缆和接头的类型,床送信号的电压。在这一层,数据作为原始的比特(bit)流传输。本层的典型设备是集线器。
2.数据链路层
数据链路层负责在两个相邻节点间的路线上,无差错的传送以帧为单位的数据。数据链路层要负责建立、维持和释放数据链路的连接。本层典型的设备是交换机。
3.网络层
在计算机网络中进行通信的两个计算机之间可能要经过N个数据链路,也可能经过N个通信子网。网络层的任务就是选择合适的网间路由和交换节点,确保数据即使传送到目标主机。
4.传输层
该层的任务是根据通信子网的特性 ...