在Redis的官网(http://redis.io/clients#c)上可以看到支持Redis C#的客户端。

redis的网络连接方式和传统的rdbms相似,一种是长连接,一种是连接池,此处使用长连接进行连接。

目前redis官方版本不支持.net直接进行连接,需要使用一些开源类库。目前最流行的就是ServiceStack.redis,可以通过https://github.com/ServiceStack/ServiceStack.Redis下载最新版本。

下载完成解压,在\ServiceStack.Redis-master\build\release\MonoDevelop目录下看到ServiceStack.Redis.zip文件,这个就是需要引入到.net项目中的4个dll文件。

测试时发现四个文件版本比较旧,可以通过编译redis源码,生成最新的dll文件。

打开VS2013,创建一个控制台应用程序,写了一些简单的Redis操作

 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Threading.Tasks;6 7 using ServiceStack.Redis;8 using ServiceStack.Redis.Support;9
10 namespace RedisDemo
11 {
12     class Program
13     {
14         private static RedisClient redis = new RedisClient("192.168.32.216", 6379, "anny");
15         static void Main(string[] args)
16         {
17             //单个字符串写入
18             redis.SetValue("age", "20");
19             //读取指定key的字符串
20             redis.GetValue("age");
21
22             //存储数字
23             redis.Set<int>("int_age", 30);
24             int age = redis.Get<int>("int_age");
25             Console.WriteLine("int_age={0}", age);
26
27             //将字符串列表写入Redis List
28             List<string> colourList = new List<string>{"red","pink","green","blue","black","white"};
29             colourList.ForEach(item => redis.AddItemToList("colourList", item));
30
31             //读取Redis List内容
32             List<string> colourList1 = redis.GetAllItemsFromList("colourList");
33             colourList1.ForEach(item => Console.Write(item + " "));
34
35             //存储实体对象,在Redis中以json格式存储
36             UserInfo user = new UserInfo(){Id=1, Name="Mark", Age=32, City="ShangHai" };
37             redis.Set<UserInfo>("user_1", user);
38             UserInfo user1 = redis.Get<UserInfo>("user_1");
39             Console.WriteLine("id={0},name={1},age={2},city={3}", user1.Id, user1.Name, user1.Age, user1.City);
40
41             //object序列化方式
42             var ser = new ObjectSerializer();
43             redis.Set<byte[]>("user1", ser.Serialize(user));
44             UserInfo user11 = ser.Deserialize(redis.Get<byte[]>("user1")) as UserInfo;
45             Console.WriteLine("id={0},name={1},age={2},city={3}", user1.Id, user1.Name, user1.Age, user1.City);
46
47             //存储对象列表到redis中
48             List<UserInfo> userList = new List<UserInfo>{
49                 new UserInfo{Id=2, Name="Jack", Age=27, City="beijing" },
50                 new UserInfo{Id=3, Name="Tom", Age=25, City="XiaMen" }
51             };
52
53             redis.Set<byte[]>("userlist", ser.Serialize(userList));
54             List<UserInfo> userList1 = ser.Deserialize(redis.Get<byte[]>("userlist")) as List<UserInfo>;
55             userList1.ForEach(i =>
56             {
57                 Console.WriteLine("id={0},name={1},age={2},city={3}", i.Id, i.Name, i.Age, i.City);
58             });
59
60
61             Console.Read();
62         }
63
64         [Serializable]
65         class UserInfo
66         {
67             public int Id { get; set; }
68             public string Name { get; set; }
69             public int Age { get; set; }
70
71             public string City { get; set; }
72         }
73     }
74 }

Redis linux环境下查看:

root@ubuntu:/usr/local/redis/bin# ./redis-cli -a anny
127.0.0.1:6379> keys *
1) "age"
2) "colourList"
3) "int_age"
4) "user1"
5) "userlist"
6) "user_1"
127.0.0.1:6379> type colourList
list
127.0.0.1:6379> lrange colourList 0 -1
1) "red"
2) "pink"
3) "green"
4) "blue"
5) "black"
6) "white"
127.0.0.1:6379> type userlist
string
127.0.0.1:6379> get userlist
"\x00\x01\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x0c\x02\x00\x00\x00@RedisDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\x04\x01\x00\x00\x00\x81\x01System.Collections.Generic.List`1[[RedisDemo.Program+UserInfo, RedisDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]\x03\x00\x00\x00\x06_items\x05_size\b_version\x04\x00\x00\x1cRedisDemo.Program+UserInfo[]\x02\x00\x00\x00\b\b\t\x03\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\a\x03\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x1aRedisDemo.Program+UserInfo\x02\x00\x00\x00\t\x04\x00\x00\x00\t\x05\x00\x00\x00\r\x02\x05\x04\x00\x00\x00\x1aRedisDemo.Program+UserInfo\x04\x00\x00\x00\x13<Id>k__BackingField\x15<Name>k__BackingField\x14<Age>k__BackingField\x15<City>k__BackingField\x00\x01\x00\x01\b\b\x02\x00\x00\x00\x02\x00\x00\x00\x06\x06\x00\x00\x00\x04Jack\x1b\x00\x00\x00\x06\a\x00\x00\x00\abeijing\x01\x05\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x06\b\x00\x00\x00\x03Tom\x19\x00\x00\x00\x06\t\x00\x00\x00\x06XiaMen\x0b"

127.0.0.1:6379> type user_1
string
127.0.0.1:6379> get user_1
"{\"Id\":1,\"Name\":\"Mark\",\"Age\":32,\"City\":\"ShangHai\"}"

转载于:https://www.cnblogs.com/zxtceq/p/7251011.html

Redis在.net中的应用学习相关推荐

  1. Redis数据库教程——系统详解学习Redis全过程

    Redis数据库教程--系统详解学习Redis全过程 Redis快速入门:Key-Value存储系统简介 Key-Value存储系统:     Key-Value Store是当下比较流行的话题,尤其 ...

  2. redis 内存不足 排查_Redis 系统学习之 redis 内存模型

    关注:架构师学习路线,每日更新互联网最新技术文章与你不断前行,实战资料,笔试面试 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并 ...

  3. redis基础命令和数据操作命令学习笔记

    redis基础命令和数据操作命令学习笔记 基础命令 安装成功后,redis的启动命令:先修改配置文件.将服务改成默认运行.然后以配置文件启动服务 redis-server config/redis-c ...

  4. 你了解Redis集群中的秘密吗?

    ​前言 今天早上北京地铁,看见一个正在学习Redis的小姐姐,很优秀 在之前的Redis系列文章中,介绍了Redis的持久化.主从复制以及哨兵机制,主从复制+哨兵机制,既可以解决主master和从sl ...

  5. 强化学习(六) - 连续空间中的强化学习(RL in Continuous Spaces)及相关实例

    强化学习(六) - 连续空间中的强化学习 6.1 连续空间中的强化学习 6.2 离散空间和连续空间 6.3 离散化 实例:小车上山 6.3.1 相关程序 6.3.2 程序注解 (1) 环境测试 (2) ...

  6. 3ds Max中的V-Ray学习

    时长3h 30m 大小解压后:2.73G 包含项目文件 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 3ds Max中的V-Ray简介:官方V-Ray导师 云桥网络 获 ...

  7. 在浏览器中进行深度学习:TensorFlow.js (四)用基本模型对MNIST数据进行识别

    2019独角兽企业重金招聘Python工程师标准>>> 在了解了TensorflowJS的一些基本模型的后,大家会问,这究竟有什么用呢?我们就用深度学习中被广泛使用的MINST数据集 ...

  8. redis在php中的使用介绍

    redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...

  9. 在OpenCV中基于深度学习的边缘检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 导读 分析了Canny的优劣,并给出 ...

  10. redis在PHP中的基本使用案例

    服务端安装 Redis的官方下载站是http://redis.io/download,可以去上面下载最新的安装程序下来,我写此文章时的的稳定版本是2.6.11. 步骤一: 下载Redis 进入软件安装 ...

最新文章

  1. Camera Lens Coating
  2. 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据...
  3. mac下 VisualBox 虚拟机转移到活动硬盘,出现 UUID 错误
  4. 点云网络的论文理解(七)-Frustum PointNets for 3D Object Detection from RGB-D Data
  5. 趣学python3(26)-pygame-蛇身运动
  6. c++ 返回数组中最大的值_4个代码块教您如何在C中动态分配2D数组
  7. gitee 从 拉取新分支到本地_Hexo博客详细教程(一)| 建立本地站点
  8. 【LeetCode笔记】1143. 最长公共子序列(Java、动态规划、字符串)
  9. 《论文笔记》Cooperative Multi-Robot Monocular-SLAM using Salient Landmarks
  10. linux内核部件分析(十)——设备驱动模型之class,linux内核部件分析(十)——设备驱动模型之class...
  11. 手写模拟器,将电子文档转换为手写字体,就用这个软件
  12. 二 详解VBA编程是什么
  13. 戴尔微型计算机云处理器,为创作与品质而生 戴尔全新XPS15 OLED云解析
  14. 可偏导不一定连续的例子
  15. 【IoT】创业:一份价值主张画布送给你
  16. 生成对抗网络训练_生成对抗网络
  17. freertos认识(freertos篇-1)
  18. Python文字转语音文字转拼音
  19. 三相电机智能栅极驱动芯片DRV83053与DRV8343S找不同
  20. python在程序中模拟键盘鼠标操作

热门文章

  1. 用access建立一个试题库_我想建立一个试题库,用Access可吗?还 – 手机爱问
  2. latex 表格 每列 分隔符
  3. C++ Make、Makefile、CMake和CMakeLists关系
  4. C++ 类 class 构造函数 : 成员赋值 父类提前构造
  5. feedback vertex set problem (FVS) 反馈顶点集问题 是什么
  6. 在已有的服务器上如何部署网站,如何在云服务器上部署网站
  7. java最新 学习路线
  8. spring 自定义注解及使用
  9. 五、Oracle学习笔记:DQL数据查询语句
  10. 【Leetcode_easy】724. Find Pivot Index