`
sillycat
  • 浏览: 2540998 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Golang(8)Database NOSQL

 
阅读更多

Golang(8)Database NOSQL

Redis
I am using redis 2.9.11

https://github.com/hoisie/redis
https://github.com/astaxie/goredis

Install the Driver
>go get github.com/astaxie/goredis

First of all, easily set up my Redis DB on my local machine. I will not demo the cluster mode. Just use the easiest one.

>cd /opt/redis
>./redis-server ./redis.conf

Once the server is started, we will see the log information as follow:
09 May 23:18:45.226 * The server is now ready to accept connections on port 7000

Then I can connect to the localhost server on the port 7000
>./redis-cli -h 127.0.0.1 -p 7000

Then running my go program to connect to the DB
package main

import (
     "fmt"
     "github.com/astaxie/goredis"
)

func main() {
     var client goredis.Client
     //set the address and port
     client.Addr = "127.0.0.1:7000"

     //string operation
     client.Set("a", []byte("hello"))
     val, _ := client.Get("a")
     fmt.Println(string(val))
     client.Del("a")

     //list
     vals := []string{"a", "b", "c", "d", "e"}
     for _, v := range vals {
          client.Rpush("l", []byte(v))
     }
     dbvals, _ := client.Lrange("l", 0, 4)
     for i, v := range dbvals {
          println(i, ":", string(v))
     }
     client.Del("l")
}

Here is the console output
hello 0 : a 1 : b 2 : c 3 : d 4 : e


MongoDB
Upgrade to 2.6.0
>mv mongodb-osx-x86_64-2.6.0 /Users/carl/tool/
>sudo ln -s /Users/carl/tool/mongodb-osx-x86_64-2.6.0 /opt/mongodb-2.6.0
>sudo rm -fr /opt/mongodb
>sudo ln -s /opt/mongodb-2.6.0 /opt/mongodb

>mongod -f mongodb.conf
>mongo --host 127.0.0.1 --port 27017

I saw some warning messages as follow:
2014-05-11T13:58:01.765-0500 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

Solution:
First of all, check the max of the open files
>ulimit -n 
256

It really small number.
I can set it to a high number.
>ulimit -n 1024

But it will only working before we reboot the system.
>launchctl limit maxfiles 1024 1024

This command can make it working forever.

mgo is not official supported.
http://docs.mongodb.org/ecosystem/drivers/go/

http://godoc.org/labix.org/v2/mgo

…TODO

References:
Redis 1~ 7
http://sillycat.iteye.com/blog/1549504
http://sillycat.iteye.com/blog/1553507
http://sillycat.iteye.com/blog/1553508
http://sillycat.iteye.com/blog/1553509
http://sillycat.iteye.com/blog/2028180
http://sillycat.iteye.com/blog/2033094
http://sillycat.iteye.com/blog/2059166

MongoDB 1 ~ 5
http://sillycat.iteye.com/blog/1547291    Concept and Installation on windows and ubuntu
http://sillycat.iteye.com/blog/1547292    Java DAO Layer Example
http://sillycat.iteye.com/blog/1547294    Java DAO Layer Example
http://sillycat.iteye.com/blog/1965857     Installation on MAC and Replication, 1 Master, 2 Secondaries
http://sillycat.iteye.com/blog/1965880     Scala Clients

https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/05.6.md

分享到:
评论

相关推荐

    golang&sql&nosql

    Golang中的`database/sql`包提供了与SQL数据库交互的通用接口。开发者可以使用它来操作诸如MySQL、PostgreSQL等数据库。在使用过程中,有几个关键点需要注意: 1. **连接池管理**:为了提高性能并避免资源浪费,应...

    Golang工具库.zip

    在IT行业中,Go语言(Golang)以其高效、简洁和并发特性受到了广泛的欢迎,尤其在构建微服务、网络工具和基础设施软件方面表现出色。"Golang工具库.zip"这个压缩包显然包含了各种Golang编写的实用工具库,这些库可以...

    基于Golang框架的在线读书社区源码.zip

    - `OPBook-master`目录很可能包含了项目的源代码结构,通常包括`main.go`(程序入口)、`models`(数据模型)、`controllers`(控制器)、`views`(视图)、`routes`(路由)、`database`(数据库操作)、`config`...

    领带:Go中基本文档(NoSQL)数据库的基本实现

    领带关键字:Golang,go,文档数据库,NoSQL,JSON领带-由Golang提供支持的NoSQL数据库tieot是一个使用JSON作为文档表示法的文档数据库引擎; 它具有功能强大的查询处理器,支持高级设置操作; 它可以嵌入到您的程序...

    MarioDB_Client:MarioDB的Golang客户端

    而`NoSQLGo`可能是针对NoSQL数据库的Golang库或框架,可能被MarioDB_Client用作基础,以实现更高级的数据库操作。 **总结** MarioDB_Client是一个使用Golang编写的客户端库,专为MarioDB数据库设计。它利用Golang...

    golang 连接mongoDB的方法示例

    MongoDB则是一种流行的NoSQL数据库,以其灵活性和高性能而闻名,尤其适合处理半结构化和非结构化数据。 描述中提到,Golang连接MongoDB涉及到Golang基础知识以及MongoDB的使用方法。这里的关键知识点包括: 1. **...

    gotinydb:一个简单的纯Golang数据库

    GoTinyDB 我们的目标是拥有一个相当简单的数据库,该数据库轻巧且不需要放在RAM中。 这部分工作由完成,该公司使用SSD功能来降低RAM消耗和提高性能。 索引由完成。 它是纯Go语言,因此CGO没问题。...

    GoStore是一个小型但功能强大的存储接口,适用于Nosql /某些rdbms *数据库,例如RethinkDb,boltdb,leveldb,riak,mongodb,postgres *等。-Golang开发

    它使混合和匹配现有的nosql /某些rdbms *数据库(例如RethinkDb)变得更加容易,而GoStore是您的应用程序数据瑞士刀GoStore是用于加速应用程序开发的应用程序存储工具。 它使将现有的nosql /某些rdbms *数据库(例如...

    golang爬虫将爬取的数据存入mongodb

    Golang作为一门高效且轻量级的编程语言,非常适合开发爬虫程序,而MongoDB则是一个功能强大的NoSQL数据库,适用于处理结构化和半结构化的数据。 首先,确保你已经安装了Golang环境和MongoDB数据库。对于Golang,你...

    hi-db:数据库:sql,nosql,分布式数据库

    Go语言(Golang)中也有许多与MySQL交互的库,如`go-sql-driver/mysql`,使得在Go程序中操作MySQL变得简单。 MySQL以其高性能、可靠性和易用性而闻名,适合处理大量数据并提供高并发访问。Google也使用MySQL作为其...

    分布式Redis协议兼容的NoSQL数据库-Golang开发

    Titan基于TiKV的Redis兼容层的分布式实现为什么选择Titan? 与Redis协议完全兼容具有高度一致性的完全分布式事务多租户支持Titan基于TiKV的Redis兼容层的分布式实现为什么选择Titan? 完全兼容Redis协议具有强一致性...

    learning-golang:学习Golang编程

    Golang教程 根据的修改 1. 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 2. 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go...

    Go-Golang爬虫爬取豆瓣电影Top250

    在本项目中,我们主要探讨的是使用Go语言(Golang)来编写一个Web爬虫,目的是爬取并解析豆瓣电影Top250的数据。Go语言因其高效、并发能力强以及丰富的标准库,尤其适合用于网络爬虫的开发。下面将详细介绍这个项目...

    进行数据存储连接-Golang开发

    动机使用前提条件安装API文档测试示例许可信用和确认动机该库是dsunit(数据存储单元可测试性库)的一部分,旨在提供对SQL,noSQL或任何其他以SQL方式处理结构化数据的存储的统一访问权限。 用法:以下是一个非常...

    Golang工具库:正在加紧收集工具,包括爬虫工具库,网络工具库,文件工具库,数据库工具如mysql,redis,m.zip

    Go对数据库的支持非常全面,标准库`database/sql`提供了一种统一的方式来与多种SQL数据库交互。针对MySQL,有`go-sql-driver/mysql`驱动,而对于NoSQL数据库如Redis,有`go-redis/redis`库。这些库使数据库操作简单...

    Go-Golang爬虫爬取汽车之家二手车产品库

    在本文中,我们将深入探讨如何使用Go语言(Golang)来构建一个Web爬虫,以爬取汽车之家网站上的二手车产品库数据。Go语言因其高效、简洁和强大的并发能力而被广泛用于网络爬虫的开发。我们将从以下几个方面展开讨论...

    go语言搭建简易投票功能

    - **SQL数据库**:为了持久化存储投票数据,我们可以选择使用MySQL、PostgreSQL等SQL数据库,或者NoSQL数据库如MongoDB。 - **数据库驱动**:Go语言有丰富的数据库驱动支持,如`github.com/go-sql-driver/mysql`,...

    Go-Packagefirebase提供一个Firebasev3.0.0API实现

    1. **实时云数据库**:Firebase实时云数据库是一种NoSQL云数据库,它允许数据在客户端和服务器之间实时同步。在Go中,使用firebase包可以方便地进行读写操作,实现数据的即时更新。 2. **身份验证**:Firebase身份...

    开源项目-masom-doorbot.zip

    项目可能使用SQL或NoSQL数据库,如MySQL、PostgreSQL、MongoDB等,并且可能使用ORM库如Gorm或sqlx简化数据库操作。 6. **安全性考虑** 对于这类涉及安全的项目,Doorbot应有强大的身份验证和授权机制,例如JWT...

    Mongo数据库转MySQL代码

    MongoDB作为NoSQL数据库,以文档型数据模型为主,而MySQL是经典的SQL数据库,采用表格形式存储数据。本例中,我们将讨论如何通过Java编程语言实现从MongoDB到MySQL的数据迁移。 首先,我们需要理解MongoDB的集合...

Global site tag (gtag.js) - Google Analytics