Redis常用的场景和实例

以下是redis常用的场景

1、显示最新的项目列表

下面这个语句常用来显示最新项目,随着数据多了,查询毫无疑问会越来越慢。

SELECT * FROM foo WHERE ... ORDER BY time DESC LIMIT 10

在Web应用中,“列出最新的回复”之类的查询非常普遍,这通常会带来可扩展性问题。这令人沮丧,因为项目本来就是按这个顺序被创建的,但要输出这个顺序却不得不进行排序操作。

类似的问题就可以用Redis来解决。比如说,我们的一个Web应用想要列出用户贴出的最新20条评论。在最新的评论边上我们有一个“显示全部”的链接,点击后就可以获得更多的评论。

继续阅读


1 星2 星3 星4 星5 星 (2 人评价, 平均分: 5.00 / 5)
Loading...

数据库的原理

今天看了一位博友的文章,觉得很棒,转载一下http://blog.jobbole.com/100349/?utm_campaign=in_app_share&utm_medium=iOS&utm_source=copy

由于本文是个长篇技术文章,涉及到很多算法和数据结构知识,你尽可以慢慢读。有些概念比较难懂,你可以跳过,不影响理解整体内容。

这篇文章大约分为3个部分:

  • 底层和上层数据库组件概况
  • 查询优化过程概况
  • 事务和缓冲池管理概况

回到基础

很久很久以前(在一个遥远而又遥远的星系……),开发者必须确切地知道他们的代码需要多少次运算。他们把算法和数据结构牢记于心,因为他们的计算机运行缓慢,无法承受对CPU和内存的浪费。

在这一部分,我将提醒大家一些这类的概念,因为它们对理解数据库至关重要。我还会介绍数据库索引的概念。

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

nginx配置301和302教程

关于nginx 301、302的跳转配置如下:

301跳转设置:
server {
listen 80;
server_name blog.haoitsoft.com;
rewrite ^/(.*) http://test.com/$1 permanent;
access_log off;
}
302跳转设置:
server {
listen 80;
server_name blog.haoitsoft.com;
rewrite ^/(.*) http://test.com/$1 redirect;
access_log off;
}

继续阅读


1 星2 星3 星4 星5 星 (3 人评价, 平均分: 5.00 / 5)
Loading...

mongodb配置文件说明

基本配置

——————————————————————————–

–quiet # 安静输出
–port arg # 指定服务端口号,默认端口27017
–bind_ip arg # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
–logpath arg # 指定MongoDB日志文件,注意是指定文件不是目录
–logappend # 使用追加的方式写日志
–pidfilepath arg # PID File 的完整路径,如果没有设置,则没有PID文件
–keyFile arg # 集群的私钥的完整路径,只对于Replica Set 架构有效
–unixSocketPrefix arg # UNIX域套接字替代目录,(默认为 /tmp)
–fork # 以守护进程的方式运行MongoDB,创建服务器进程
–auth # 启用验证
–cpu # 定期显示CPU的CPU利用率和iowait
–dbpath arg # 指定数据库路径
–diaglog arg # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
–directoryperdb # 设置每个数据库将被保存在一个单独的目录
–journal # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
–journalOptions arg # 启用日志诊断选项
–ipv6 # 启用IPv6选项
–jsonp # 允许JSONP形式通过HTTP访问(有安全影响)
–maxConns arg # 最大同时连接数 默认2000
–noauth # 不启用验证
–nohttpinterface # 关闭http接口,默认关闭27018端口访问
–noprealloc # 禁用数据文件预分配(往往影响性能)
–noscripting # 禁用脚本引擎
–notablescan # 不允许表扫描
–nounixsocket # 禁用Unix套接字监听
–nssize arg (=16) # 设置信数据库.ns文件大小(MB)
–objcheck # 在收到客户数据,检查的有效性,
–profile arg # 档案参数 0=off 1=slow, 2=all
–quota # 限制每个数据库的文件数,设置默认为8
–quotaFiles arg # number of files allower per db, requires –quota
–rest # 开启简单的rest API
–repair # 修复所有数据库run repair on all dbs
–repairpath arg # 修复库生成的文件的目录,默认为目录名称dbpath
–slowms arg (=100) # value of slow for profile and console log
–smallfiles # 使用较小的默认文件
–syncdelay arg (=60) # 数据写入磁盘的时间秒数(0=never,不推荐)
–sysinfo # 打印一些诊断系统信息
–upgrade # 如果需要升级数据库

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

Mongodb更新命令和操作符

定义

db.collection.update(query, update, options)

改变一个在集合中已经存在的文档或文档数组。默认的,update()方法更新一个独立的文档。如果multi选项被设置为true(真),这个方法更新匹配条件的所有文档。

方法格式:

db.collection.update(
   <query>,
   <update>,
   { upsert: <boolean>, multi: <boolean> }
)

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

Mongodb的基本语法和使用

官网文档:https://docs.mongodb.org/manual/

推荐mongodb图形管理工具:https://robomongo.org

基本用法命令

show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户
use :切换当前数据库,这和MS-SQL里面的意思一样
db.help():显示数据库操作命令,里面有很多的命令
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
MongoDB没有创建数据库的命令,但有类似的命令。
如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection(‘user’)),这样就可以创建一个名叫“myTest”的数据库

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

采用PM2 对Node 应用的进程进行管理

介绍

PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。

GitHub 地址:https://github.com/Unitech/pm2

当你要把你的独立代码利用全部的服务器上的所有 CPU,并保证进程永远都活着,0 秒的重载, PM2 是完美的。它非常适合 IaaS 结构,但不要把它用于 PaaS 方案(随后将开发 Paas 的解决方案)。

备注:

  • SaaS、PaaS 和 IaaS 是云服务模式
  • SaaS 软件即服务,例如 Google 的 Gmail 邮箱服务,面向应用型用户
  • PaaS 平台即服务,例如 Google 的 GAE,面向开发型用户
  • IaaS 基础架构即服务,例如亚马逊的 AWS,IaaS 对于不知道新推出的应用程序/网站会有多成功的创业公司来说非常有用

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...

linux下安装mysql5.6

随着mysql越来越受欢迎,但对于刚接触linux系统的人来说,安装mysql比在windows下痛苦的多,希望这个文章等够帮助到各位,以下是主要的安装步骤:

1、官网下载mysql安装包:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz

2、下载cmake安装包:wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

3、解压cmake:tar xzvf cmake-2.8.4.tar.gz

4、cd cmake-2.8.4

5、./bootstrap

6、gmake

7、gmake install

8、解压Mysql:tar xzvf mysql-5.6.20.tar.gz

继续阅读


1 星2 星3 星4 星5 星 (1 人评价, 平均分: 5.00 / 5)
Loading...