自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

芝麻软件工作室的专栏

所有成员均具有十几年软件设计经验

  • 博客(991)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux平台安装MongoDB

MongoDB提供了linux平台上32位和64位的安装包,你可以在官网下载安装包。下载地址:http://www.mongodb.org/downloads下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) 。curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tg

2016-07-30 22:16:57 332

原创 window平台安装 MongoDB

MongoDB 下载MongoDB提供了可用于32位和64位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB预编译二进制包下载地址:http://www.mongodb.org/downloads注意:在 MongoDB2.2 版本后已经不再支持 Windows XP 系统。MongoDB for Windows 64-bit 适合

2016-07-30 22:14:11 273

原创 MongoDB—驱动实践

作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者,因为提供了丰富的linq操作,相当方便。 官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads。下载后,还提供了一个酷似msdn的帮助文档。samus驱动:https://

2016-07-30 21:52:33 938 2

原创 MongoDB—运维技术

这一篇我们以管理员的视角来看mongodb,作为一名管理员,我们经常接触到的主要有4个方面:1.  安装部署2.  状态监控3.  安全认证4.  备份和恢复,下面我们就一点一点的讲解。 一:安装部署        我之前的文章都是采用console程序来承载,不过在生产环境中这并不是最佳实践,谁也不愿意在机器重启后满地找牙似找mon

2016-07-30 21:50:55 785 1

原创 MongoDB—分片技术

在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对。 一:分片     mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一种解决方案。 下面我对这张图解释一下:     人脸:       代

2016-07-30 21:49:30 283

原创 MongoDB—主从复制

从这一篇开始我们主要讨论mongodb的部署技术。    我们知道sql server能够做到读写分离,双机热备份和集群部署,当然mongodb也能做到,实际应用中我们不希望数据库采用单点部署,如果碰到数据库宕机或者被毁灭性破坏那是多么的糟糕。 一:主从复制1: 首先看看模型图  2: 从上面的图形中我们可以分析出这种架构有如下的好处

2016-07-30 21:48:15 1017 2

原创 MongoDB—索引操作

这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅。    好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就会被人唾弃,呵呵。    从算法上来说有5种经典的查找,具体的可以参见我的算法速成系列,这其中

2016-07-30 21:47:20 504

原创 MongoDB—高级操作

今天跟大家分享一下mongodb中比较好玩的知识,主要包括:聚合,游标。一: 聚合      常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce。 count        count是最简单,最容易,也是最常用的聚合工具,它的使用跟我们C#里面的count使用简直一模一样。  dist

2016-07-30 21:46:23 260

原创 MongoDB—增删查改

看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然傻眼了,擦,竟然开启不了,仔细观察“划线区域“的信息,发现db文件夹下有一个类似的”lock file”阻止了mongodb的开启,接下来我们要做的就是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享。 一

2016-07-30 21:45:24 251

原创 MongoDB—基础入门

关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。 一: 下载      上MongoDB官网 ,我们发现有32bit和64bit,这个就要看你系统了,不过这里有两点注意:          ①:根据业界规则,偶数为“稳定版”(如:1

2016-07-30 21:44:03 293

原创 Redis 数据备份与恢复

Redis SAVE 命令用于创建当前数据库的备份。语法redis Save 命令基本语法如下:redis 127.0.0.1:6379> SAVE 实例redis 127.0.0.1:6379> SAVE OK该命令将在 redis 安装目录中创建dump.rdb文件。恢复数据如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到

2016-07-29 08:49:30 404

原创 Redis 安全

我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。实例我们可以通过以下命令查看是否设置了密码验证:127.0.0.1:6379> CONFIG get requirepass1) "requirepass"2) ""默认情况下 requirepass 参数是空的,这就意味着你无需通

2016-07-29 08:48:38 443

原创 Redis 性能测试

Redis 性能测试是通过同时执行多个命令实现的。语法redis 性能测试的基本命令如下:redis-benchmark [option] [option value]实例以下实例同时执行 10000 个请求来检测性能:redis-benchmark -n 100000 PING_INLINE: 141043.72 requests per secondPI

2016-07-29 08:47:12 331

原创 Redis 客户端连接

Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法然后创建一个可读的文件事件用于监听这个客户端

2016-07-29 08:46:07 338

原创 Redis 管道技术

Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。Redis 管道技术Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

2016-07-27 10:34:16 431

原创 Redis 分区

分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。分区的优势通过利用多台计算机内存的和值,允许我们构造更大的数据库。通过多核和多台计算机,允许我们扩展计算能力;通过多台计算机和网络适配器,允许我们扩展网络带宽。分区的不足redis的一些特性在分区方面表现的不是很好:涉及多个key的操作通常是不被支持的。举例来说,当两个set映

2016-07-27 10:33:15 239

原创 PHP 使用 Redis

安装开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP。 接下来让我们安装 PHP redis 驱动:下载地址为:https://github.com/phpredis/phpredis/releases。PHP安装redis扩展以下操作需要在下载的 phpredis 目录中完成:

2016-07-27 10:32:17 317

原创 Java 使用 Redis

安装开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装 Java redis 驱动:首先你需要下载驱动包,下载 jedis.jar,确保下载最新驱动包。在你的classpath中包含该驱动包。连接到

2016-07-27 10:31:25 651

原创 Redis 服务器

Redis 服务器命令主要是用于管理 redis 服务。实例以下实例演示了如何获取 redis 服务器的统计信息:redis 127.0.0.1:6379> INFO# Serverredis_version:2.8.13redis_git_sha1:00000000redis_git_dirty:0redis_build_id:c2238b38b1edb0e2r

2016-07-27 10:30:19 295

原创 Redis 连接

Redis 连接命令主要是用于连接 redis 服务。实例以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行:redis 127.0.0.1:6379> AUTH "password"OKredis 127.0.0.1:6379> PINGPONGRedis 连接命令下表列出了 redis 连接的基本命令:

2016-07-27 10:26:34 495

原创 Redis 脚本

Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。语法Eval 命令的基本语法如下:redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]实例以下实例演示了 redis 脚本工作过程:redi

2016-07-27 10:25:50 239

原创 Redis 事务

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。实例以下是一个事务的例子

2016-07-27 10:25:07 224

原创 Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消

2016-07-27 10:24:26 334

原创 Redis HyperLogLog

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计

2016-07-27 10:23:26 240

原创 Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295

2016-07-27 10:22:29 368

原创 Redis 集合(Set)

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 实例redis 127.0.0.1:6379> SADD w3ckey redis(in

2016-07-27 10:21:43 255

原创 Redis 列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。实例redis 127.0.0.1:6379> LPUSH w3ckey redis(integer) 1redis 127.0.0.1:6379> LPUSH w3ck

2016-07-27 10:21:04 234

原创 Redis 哈希(Hash)

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。实例redis 127.0.0.1:6379> HMSET w3ckey name "redis tutorial" description "redis basic commands for c

2016-07-27 10:20:19 461

原创 Redis 字符串(String)

Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:语法redis 127.0.0.1:6379> COMMAND KEY_NAME实例redis 127.0.0.1:6379> SET w3ckey redis OK redis 127.0.0.1:6379> GET w3ckey "redis"在以上实例中我们使用了 SET 和 

2016-07-27 10:19:35 316

原创 Redis 键(key)

Redis 键命令用于管理 redis 的键。语法Redis 键命令的基本语法如下:redis 127.0.0.1:6379> COMMAND KEY_NAME实例redis 127.0.0.1:6379> SET w3ckey redisOKredis 127.0.0.1:6379> DEL w3ckey(integer) 1在以上实例中 DEL

2016-07-27 10:18:48 268

原创 Redis 命令

Redis 命令用于在 redis 服务上执行操作。要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。语法Redis 客户端的基本语法为:$ redis-cli实例以下实例讲解了如何启动 redis 客户端:启动 redis 客户端,打开终端并输入命令 redis-cli

2016-07-27 10:17:37 235

原创 Redis 数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如j

2016-07-27 10:16:48 184

原创 Redis 配置

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。你可以通过 CONFIG 命令查看或设置配置项。语法Redis CONFIG 命令格式如下:redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME实例redis 127.0.0.1:6379> CONFIG GET

2016-07-27 10:15:43 200

原创 Redis 安装

Window 下安装下载地址:https://github.com/dmajkic/redis/downloads。下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis

2016-07-27 10:14:32 266

原创 游戏服务器ID生成器组件

游戏服务器程序中,经常需要生成全局的唯一ID号,这个功能很常用,本文将介绍一种通用ID生成组件。游戏服务器程序中使用此组件的场景有: 创建角色时,为其分配唯一ID  创建物品时,每个物品需要唯一ID  创建宝宝、灵兽时需要唯一ID原理介绍         ID生成器的原理就是使用全局整型变量,每次分配之后该变量递增1。由于服务器重启后全局变量失效,故全局变量需要持久化保存,相应

2016-07-22 05:40:30 1899

原创 使用epoll&socket的总结

1. epoll 中使用et方式触发,只需EPOLL_CTL_ADD一次,把EPOLLIN  EPOLLOUT 事件全注册,每个socket只需创建add一次,其事件就会     一直在epoll中,当然,socketclose 后应DEL掉。2. ET触发方式是指当fd到状态发生变化时通知,如read buffer从无到有,write buffer从满到不满才会通知。3.

2016-07-22 05:32:06 593

原创 C++任务队列与多线程

很多场合之所以使用C++,一方面是由于C++编译后的native code的高效性能,另一方面是由于C++优秀的并发能力。并行方式有多进程 和多线程之分,本章暂且只讨论多线程,多进程方面的知识会在其他章节具体讨论。多线程是开发C++服务器程序非常重要的基础,如何根据需求具体的设计、分配线程以及线程间的通信,也是服务器程序非常重要的部分,除了能够带来程序的性能提高外,若设计失误,则可能导致程序复杂而

2016-07-22 05:27:55 3152

原创 MySQL数据库Filesort过程

filesort algorithm读取所有需要排序的数据每行数据    算法1(original):存储排序key和行指针    算法2(modified):存储排序key和select中的字段每次排序sort_buffer_size能容纳的行数,排序结果写入IO_CACHE对象(不妨称为IO1),本次排序结果的位置信息写入另一个IO_CACHE对象(不妨称为IO

2016-07-21 23:16:33 700

原创 MySQL数据库中QueryCache的锁模型

有同学在问 MySQL数据库中 QueryCache(QC)的锁是 “全局锁”还是 “表锁”。这里简要说明一下。1、  QC基本概念这个是实现在MySQL层(非引擎层)的一个内存结构,基本规则是将满足一定条件的查询结果缓存在内存中,若同样的查询再执行第二次,而且缓存没有失效,则可以直接返回查询结果,无需到引擎获取数据。几个说明:a) QC的结构是hash,key为查

2016-07-21 23:13:46 346

原创 MySQL多线程同步MySQL-Transfer介绍

一、关于TransferMySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master (by P.Linux)合并到Transfer中并针对支付宝的应用需求做了定制性能改进。这里做一个

2016-07-21 23:12:19 2273

WINCE 6.0 TTS 语音合成(朗读)

ejTTS 6.0 特性 支持多种规模的音库,满足各类需求; 支持合成语音的不同采样率、比特率、格式输出; 支持用户定制化需求; 支持多种压缩参数和谱参数引擎; 支持动态音频参数规划; 支持流式文本输入; 支持进度通知; 支持同步回显拼音输出; 全新架构,具有高可靠的稳定性。 2.2. 高品质的语音合成效果 由于采用了新的语音合成算法,ejTTS 在合成效果上已经接近传统大语料库语音合 成算法的效果,与以往的嵌入式语音合成软件相比,合成语音更加自然和流畅。 由于采用了一体化的智能文本分析算法,结合统计和规则等处理手段,ejTTS 的文 本处理前端拥有较强的分词、多音字、韵律环境预测能力,以及自动识别和处理日 期时间、数值金额、电话号码等文本的能力。 针对文本变化范围可事先预知的领域,谱参数引擎可根据用户需求,通过制作定制 音库和优化文本分析的方法,使得合成效果更为准确和自然。 2.3. 极低的资源需求 整体软件架构的设计紧凑高效; 软件开发过程中,在合成算法、数据结构、代码编写等不同层面都进行了深入优化; 资源的结构设计也非常精巧,既降低了资源的尺寸,又提升了资源访问的效率。

2012-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除