Shellman

  • 首页

  • 标签

  • 归档

MongoDB官方推出的Go驱动库“mongo-go-driver”快速教程

发表于 2018-11-22

0. 关于“mongo-go-driver”

MongoDB一直缺乏官方的Go驱动库,官方仅做了社区驱动的推荐:Community Supported Drivers Reference。这其中Go驱动推荐的是mgo,以前mgo维护者是个人,后来因为精力的原因将其移交给社区。

mgo我用过相当长的一段时间,这是一个非常好用的驱动,基本可以满足我的需求。它最大的问题就是更新不够及时,总是落后官方一到两个版本。移交给社区后有一定的改善,但是依然存在类似的问题。比如说在今年的6月份MongoDB 4.0的正式版已经发布了,但是到目前为止半年过去了,mgo对4.0的支持依然是试验性的。

官方的驱动一般都会更新的更及时,新版本带来的特性也会支持的更好。而在今年初,MongoDB官方公开了Go的官方驱动“mongo-go-driver”的Alpha 1版本。到目前为止已经是Alpha 18了,虽然已经迭代了18个版本,但是依然不建议在生产环境使用。不过这不妨碍我们试用它,并在未来恰当的时机导入到生产环境中。

1. 演示

1.1. 映射

1
2
3
4
5
type User struct {
ID objectid.ObjectID "_id,omitempty"
Name string `bson:"dbname",json:"jsonname"`
Phone string
}

有三种规则:

阅读全文 »

我的最佳实践之Cloudflare——基于免费服务

发表于 2018-07-25

阅读指南:

  1. 这是一篇关于Cloudflare基础的文章,比较了解的朋友可以跳过。
  2. 以下CF为Cloudflare的简称。

0. 关于Cloudflare

Cloudflare是一间美国的跨国IT企业,总部位于旧金山,在伦敦和英美外亦设有办事处。
Cloudflare以向客户提供网站安全管理、性能优化及相关的技术支持为主要业务。通过基于反向代理的内容分发网络(Content Delivery Network,CDN)及分布式域名解析服务(Distributed Domain Name Server),Cloudflare可以帮助受保护站点抵御包括拒绝服务攻击在内的大多数网络攻击,确保该网站长期在线,同时提升网站的性能、加载速度以改善访客体验。

wikipedia.orgCloudFlare

CF你可以把它理解为一个从域名解析开始覆盖全站的安全防护与CDN服务,与国内的各种云CDN服务是类似的,只不过它做的更早且更专注于这方面。

1. Cloudflare适合你吗?

1.1. 网络性能

首先,免费版的CF没有大陆节点(与百度合作的收费定制版有大陆节点,但是必须要ICP备案)。如果你的服务器也在大陆的话,那么大陆用户访问网站的时候,加载的每个资源都会经历两次跨区域网络传输,速度感人。下面这个表格用于说明服务器和用户在不同区域时使用CF时对页面加载速度的影响:

阅读全文 »

搭建基于树莓派的家用服务器/NAS(6)——数据同步存储/私有云盘(Syncthing)

发表于 2018-07-21

阅读指南:

  1. 配置树莓派需要有一定的Linux基础。
  2. 不熟悉树莓派的朋友,可以从第一篇文章开始。

Syncthing是一个开源的文件同步客户端与服务器软件,可以通过Web界面或者原生客户端管理。

0. 关于客户端和服务端

Syncthing是没有服务端和客户端的区分的,每个实例同时要充当这双重角色,多个实例之间互相同步。
举个具体的例子来说:树莓派不间断实例充当中转与备份用,这样在公司的电脑中编辑了文件会同步到树莓派里。回到家以后打开家里的电脑又会从树莓派中更新最新的文件到本地,这样就实现了在公司和在家中文件始终同步的体系。

这实际上就是私有云存储的概念了,自此不受第三方云存储的限制:容量、速度、流量、文件数量等。同时又能保证数据的私密性,不用担心数据被第三方云存储厂商泄漏。
私有云存储要格外注重安全方面的配置。若是安全配置不到位,数据安全性反而不如第三方云存储

1. 安装

阅读全文 »

搭建基于树莓派的家用服务器/NAS(5)——文件共享(Samba / SMB, Nginx / WebDav)

发表于 2018-07-02

阅读指南:

  1. 配置树莓派需要有一定的Linux基础。
  2. 不熟悉树莓派的朋友,可以从第一篇文章开始。

0. 关于WebDav和SMB

Samba是一个基于SMB协议的网络共享软件,SMB是一种常见的网络文件共享协议。
SMB的特点是使用专有端口,某些情况下性能有优势,但是它在安全性、通用性方面不如WebDav。

Nginx是一个开源的Web服务软件,它支持WebDAV。
WebDav是基于http的,http有的功能它都有(比如说可以使用ssl加密),还可以直接用浏览器打开。可以看出来它的安全性和通用性非常优秀,适合在互联网上做共享。

如果你的共享是在局域网中使用,建议使用SMB。若是要通过互联网使用,可以考虑WebDav。若两方面需求都有,也可以都搭建,它们能很好的共存互不干扰。

1. Samba / SMB

1.1. 安装

阅读全文 »

搭建基于树莓派的家用服务器/NAS(4)——BT下载(Transmission)

发表于 2018-06-22

阅读指南:

  1. 配置树莓派需要有一定的Linux基础。
  2. 不熟悉树莓派的朋友,可以从第一篇文章开始。

Transmission是一个开源的BT传输软件,第一次配置好以后可以通过Web界面管理。

1. 安装

安装非常简单,执行sudo apt -y install transmission-daemon就可以自动安装了。

2. 初次设置

编辑配置文件sudo vi /etc/transmission-daemon/settings.json,首次使用只需要更改几个主要选项,其它的选项可以之后在web界面中设置。需修改的主要选项如下:

阅读全文 »

搭建基于树莓派的家用服务器/NAS(3)——挂载外置硬盘

发表于 2018-06-12

阅读指南:

  1. 配置树莓派需要有一定的Linux基础。
  2. 不熟悉树莓派的朋友,可以从第一篇文章开始。

我这里用一个老的500G硬盘做演示,大家在操作不熟练的时候也最好使用一个无关紧要的存储设备来练练手,以防损害硬盘内的数据。

1. 格式化硬盘

如果是已经格式化为linux支持的文件系统(如fat32、exfat、ext2/3/4等)的硬盘则可以直接挂载。

确保硬盘的USB已经接入树莓派,且独立供电。终端登录进树莓派后键入sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL,可以显示所有存储设备,然后通过容量和

名称可以轻易判断出sda是我们所要操作的设备名:

阅读全文 »

搭建基于树莓派的家用服务器/NAS(2)——安装系统

发表于 2018-06-06

阅读指南:

  1. 配置树莓派需要有一定的Linux基础。
  2. 熟悉树莓派的朋友可以跳过前两篇文章,从第三篇——挂载外置硬盘开始。

1. 下载安装包

  • 无界面系统——Raspbian lite
  • 将系统写入TF卡的软件——Etcher

2. 安装系统

首先将TF卡通过读卡器接入电脑主机,再把Etcher安装好并打开:

阅读全文 »

搭建基于树莓派的家用服务器/NAS(1)——需求和硬件

发表于 2018-06-03

阅读指南:

  1. 配置树莓派需要有一定的Linux基础。
  2. 熟悉树莓派的朋友可以跳过前两篇文章,从第三篇——挂载外置硬盘开始。

0. 关于树莓派

树莓派(英语:Raspberry Pi)其实就是一个拥有完整功能的电脑主机——小小的一个电路板上集成了CPU、显卡(集成在CPU里)、内存、硬盘(存储卡接口)、HDMI显示接口、USB接口、有线网络接口、音频接口,第三代产品甚至还有蓝牙和Wi-Fi。

基于树莓派的家用服务器有以下优点:

  • 成本小——成本只要几百块钱
  • 功耗小——普通的手机充电器就能够供电
  • 体积小——巴掌大小,完全不占空间
  • 噪音小——不需要散热风扇,几乎没有噪音

1. 需求

我的需求主要来自于以下几点:

阅读全文 »

Shellman

年少不惧江湖老,放歌四海任逍遥。
未解前路多少事,欲与青天试比高。

8 日志
7 标签
GitHub E-Mail
Creative Commons
© 2018 Shellman
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Muse v6.5.0