模拟搭建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, &lt: value1}

*案例:
查询数据:20、21、22、23
查询条件:key: {$gt: 21, &lt: 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌狼爱爪爪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值