模拟搭建Web项目的真实运行环境(六)
今天把Redis和Mongodb的操作整理一下,方便日后自己查看,废话不多说,直接进入主题。
一、Redis
1. 引用StackExchange.Redis.dll
由于ServiceStack.Redis在4.0以上已经是商业版本需要收费了,
所以在这里我选择了StackExchange.Redis应用于项目中。
首先需要获取StackExchange.Redis.dll,这里有几种方式可以得到:
① 直接下载stackexchange.redis.dll运行(推荐,简单方便)
② 去redis官网下载客户端的C#版本,然后在本地运行编译,生成stackexchange.redis.dll
(小狼几次由于网络不稳定,编译时在还原NuGet包的过程中总是不通过,导致生成的dll有问题)
③ 在 vs 里面,用nuget安装stackexchange.redis库
(通过NuGet的方式安装,框架中会多出一些可能不需要用到的库,增加项目大小)
这里我提供了一个自己上传的stackexchange.redis.dll,有需要的朋友可以下载。
百度网盘:http://pan.baidu.com/s/1qXUM39M 密码:vnrz
下载好文件加压之后在项目中引用,然后在代码中添加:
using StackExchange.Redis;
2. 创建一个Conn对象
ConnectionMultiplexer conn = ConnectionMultiplexer.Connect("192.168.1.111,password=admin");
上面的192.168.1.111是redis服务的ip地址,admin是redis服务的密码。
3. 创建一个db对象
IDatabase db = conn.GetDatabase(0);
参数0代表选择的是redis服务端的0数据库
4. 通过对象db就可以实现对redis的操作了
在下一篇附上一个小案例,简单封装了对Redis和Mongodb的操作,
有兴趣的可以下载看看。这里就不对db的方法一个一个展开介绍了。
二、Mongodb驱动
1. 从mongo官网下载C#驱动
官网地址:http://mongodb.github.io/mongo-csharp-driver/2.2/getting_started/installation/
百度网盘:http://pan.baidu.com/s/1c2v9tIS 密码:lt8m
2. 解压下载好的驱动,在项目中引用三个文件:
MongoDB.Bson.dll
MongoDB.Driver.dll
MongoDB.Driver.Core.dll
3. 在程序代码中添加:
using MongoDB.Bson;
using MongoDB.Driver;
4. 创建Client对象
IMongoClient client = new MongoClient("mongodb://192.168.1.111:27017");
5.创建Database对象
IMongoDatabase db = client.GetDatabase("db_sys");
6. 创建Collection对象
IMongoCollection<UserEntity> collection = db.GetCollection<UserEntity>("user");
7. 筛选条件
在介绍CRUD之前,先介绍筛选条件中几个重要的语法,
在这里我们把一个筛选条件(filter)作为原子来处理,
设为$a(后面小狼封装的类库中也是根据这个原理来设计)
(1)等于(Equal)
$a = key: value
*案例:
查询数据:老狼、小杨、C+、阿东、小豪、小静、老狼大傻逼
查询条件:key: '老狼'}
查询结果:老狼
(2)大于(Greater)
$a = key: {$gt: value}
*案例:
查询数据:20、21、22、23
查询条件:key: {$gt: 21}
查询结果:22、23
(3)小于(Less)
$a = key: {$lt: value}
*案例:
查询数据:20、21、22、23
查询条件:key: {$lt: 21}
查询结果:20
(4)大于等于(GreateOrEqual)
$a = key: {$gte: value}
*案例:
查询数据:20、21、22、23
查询条件:key: {$gte: 21}
查询结果:21、22、23
(5)小于等于(LessOrEqual)
$a = key: {$lte: value}
*案例:
查询数据:20、21、22、23
查询条件:key: {$lte: 21}
查询结果:20、21
(6)不等于(NotEqual)
$a = key: {$ne: value}
*案例:
查询数据:20、21、22、23
查询条件:key: {$ne: 21}
查询结果:20、22、23
(7)开区间(Between)
$a = key: {$gt: value0, <: value1}
*案例:
查询数据:20、21、22、23
查询条件:key: {$gt: 21, <: 23}
查询结果:22
(8)包含(In)
$a = key: {$in: array}
*案例:
查询数据:0、1、2、3
查询条件:key: {$in: [1,2]}
查询结果:1、2
(9)不包含(NotIn)
$a = key: {$nin: array}
*案例:
查询数据:0、1、2、3
查询条件:key: {$nin: [1,2]}
查询结果:0、3
(10)模糊查询(Like)
①必须以指定值开头:key: /^value/
②指定值前面必须有其他值:key: /.value/
③包含指定值:key: /value/
*案例:
查询数据:小狼、老狼、狼群、狼窝、灰太狼、天狼星、小杨
查询条件:
①$a = key: /^狼/
②$a = key: /.狼/
③$a = key: /狼/
查询结果:
①狼群、狼窝
②小狼、老狼、灰太狼、天狼星
③小狼、老狼、狼群、狼窝、灰太狼、天狼星
其实你可以发现,第一种和第二种的合集就是第三种
(11)逻辑与(And)
假设$a = key:value,
则$c = $a, $b
(12)逻辑或(Or)
假设$a = key:value,
则$c = $or:[{$a}, {$b}]
8. 分页排序查询
collection.Find(filter, null).Sort("{ctime: -1}").Skip((index-1) * size).Limit(size).ToList<T>();
9. 创建
UserEntity entity = new UserEntity();
collection.InsertOne(entity);
10.更新
filter:更新时的筛选条件
update:更新的内容
collection.UpdateOne(filter, update);
11. 删除
collection.DeleteOne("{_id: '00010001'}");
关于mongo驱动的CRUD的介绍告一段落,下一篇介绍一个小案例,
主要是一个用户详情表格的增删改查,主要以mongo驱动的使用为主,
其中增删改查用的是mongodb,而用户ID的自增用到了redis,
最后推荐一位前辈总结的一篇文章,写的很详细:
http://www.cnblogs.com/wuhuacong/archive/2016/01/05/5098348.html
模拟搭建Web项目的真实运行环境(六)的更多相关文章
- 模拟搭建Web项目的真实运行环境(一)
序言 最近尝试完整搭建一个Web项目的运行环境,总结一下这几个月学到的知识点. 后面的文章主要包括一下几个内容: A. 搭建一个Linux服务器,用来部署Redis.Mongo等数据存储环境: B. ...
- 模拟搭建Web项目的真实运行环境(四)
本篇介绍如何部署mongodb环境,主要分为三个部分: 第一部分 介绍如何在ubuntu下安装mongodb, 第二部分 介绍如何在windows下安装使用MongoChef客户端, 第三部分 介绍在 ...
- 模拟搭建Web项目的真实运行环境(七)
下面这个是mongo驱动的小案例,里面也有涉及到一点redis的操作 https://github.com/SuperRocky/MyMongoDriver 接下来通过几张图片主要介绍一下每个文件的具 ...
- 模拟搭建Web项目的真实运行环境(五)
一.开启IIS功能 刚安装完的server2008是没有默认开启IIS功能,在这里简单介绍一下如何开启IIS. 步骤: 1. 打开控制面板,选中[程序] 2. 在[程序和功能]下面,选择[打开或关闭w ...
- 模拟搭建Web项目的真实运行环境(三)
一.解决Redis出现的RDB权限问题 当你在安装redis的时候,如果是使用超级用户root安装, 开启redis服务的时候没有用超级用户去开启, 在用客户端登录redis,然后使用shutdown ...
- 模拟搭建Web项目的真实运行环境(二)
上一节已经介绍了如何在虚拟机中部署测试环境,接下来将介绍怎么在ubuntu下部署redis. 一.在ubuntu安装Xrdp + Vnc 为了在以后可以通过windows系统来远程操作ubuntu ...
- 【maven】 在 MyEcplise上使用maven搭建Web项目
二.在My Ecplise上使用Maven搭建Web项目 1.新建一个maven项目 2.create一个简单的骨架 3.就像在ecplise中一样设置项目的以下配置 4.新创建的项目结构如下 ...
- Spring-Boot快速搭建web项目详细总结
最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建 ...
- 如何使用maven搭建web项目
博客园注册了有二十多天了,还没有写过博客,今天就发一篇,也便于后面查找笔记. 我个人已经做了几年的java web开发了,由于所在的公司是业务型公司,用的都是一些老旧的稳定技术,很少接触到稍微新点的内 ...
随机推荐
- 用hibernate tools生成对应的sql应用代码
参考资料: eclipse在线配置hibernate tools http://jingyan.baidu.com/article/db55b609959d154ba20a2f5d.html [图]H ...
- NOIP2016游记
只是游记而已.流水账. Day0:忘了. Day1:看完T1,本以为T2一如既往很简单,结果看了半天完全没有思路.然后看了一眼T3,期望,NOIP什么时候要考期望了,于是接着看T2.一开始我推的限制条 ...
- java 枚举的简单应用。
枚举,就是保存着原始的<key,value> 在代码中会经常用到.为了不坑自己,记录一下笔记 package com.fortunedr.common.constant; public e ...
- CATransition的type属性类型
用字符串表示 pageCurl 向上翻一页 pageUnCurl 向下翻一页 rippleEffect 滴水效果 s ...
- redis 操作string 的测试
1>set set name zhangsan :OK get name: zhangsan set name lisi:OK get name: lisi 2> setnx 如果存 ...
- 关于MySQL的wait_timeout连接超时问题报错解决方案
bug回顾 : 想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ...
- 6. web前端开发分享-css,js移动篇
随着移动市场的逐步扩大及相关技术的日趋完善,对前端开发提出了新的岗位要求,在继承前人成果的基础上需要在新的历史条件下有新的创新.移动端的开发,虽然没有IE6众多问题的折磨,但是多平台,多设备的兼容,也 ...
- Linux查找命令
最近,我在学习Linux,下面是一些笔记. 使用电脑的时候,经常需要查找文件. 在Linux中,有很多方法可以做到这一点.国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条.大多数程序 ...
- windows安装redis
下载安装包,由于redis不提供windows版本,但是通过官网了解,如下: The Redis project does not officially support Windows. Howeve ...
- php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密
PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...