Redis是一个key-value存储系统。和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

Redis的代码遵循ANSI-C编写,可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行。而且Redis并不依赖任何非标准库,也没有编译参数必需添加。redis的安装出奇的简单,这可能也是他风靡的一个原因,让人很容易上手,不像某些东西,编译阶段就能让人完全绝望。

先去官网下载源码:

wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz

解压:

tar –zxvf redis-2.4.6.tar.gz

编译

需要说明的事,redis的安装非常简单,已经有现成的Makefile文件,直接运行make命令即可。

make

make install

Redis 由四个可执行文件:redis-benchmarkredis-cliredis-serverredis-stat 这四个文件,加上一个redis.conf就构成了整个redis的最终可用包。它们的作用如下:

  • redis-server:Redis服务器的daemon启动程序
  • redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  • redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

现在就可以启动redis了,redis只有一个启动参数,就是他的配置文件路径。

redis-server /etc/redis.conf

注意,默认复制过去的redis.conf文件的daemonize参数为no,所以redis不会在后台运行,这时要测试,我们需要重新开一个终端。修改为yes则为后台运行redis。另外配置文件中规定了pid文件,log文件和数据文件的地址,如果有需要先修改,默认log信息定向到stdout.

下面是redis.conf的主要配置参数的意义:

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379

我们可以开启一个Redis客户端进行测试

[root@SNDA-192-168-1-114 ~]# redis-cli 
Could not connect to Redis at 127.0.0.1:6379: Connection refused 
not connected> exit 
[root@SNDA-192-168-1-114 ~]# redis-server /etc/redis.conf 
[root@SNDA-192-168-1-114 ~]# redis-cli 
redis 127.0.0.1:6379> quit

以上文章内容参考张善友的博文,文章地址:http://www.cnblogs.com/shanyou/archive/2012/01/28/2330451.html

下面主要介绍下如何在DoNet中使用,本篇只是入门篇,如果需要更深入的话,请期待下篇。呵呵。。

首先,和一般数据库一样,我们连接sql数据库需要ODBC,那么连接redis也不列外,在这里我使用的是官网推荐推荐的ServiceStack.Redis 下载后解压得到如下dll

在项目中引用以上DLL,即可进行redis的简单读写:

static void Main(string[] args)
{
RedisClient Redis = new RedisClient("192.168.225.129", );//redis服务IP和端口
List<string> storeMembers = new List<string>() { "one", "two", "three" };
storeMembers.ForEach(x => Redis.AddItemToList("additemtolist", x));
Console.WriteLine("获取多个值:" + Redis.GetAllItemsFromList("additemtolist").Aggregate((current, item) => { return current += item + ","; }));
Console.WriteLine("获取指定索引的值:" + Redis.GetAllItemsFromList("additemtolist")[]);
var lists = Redis.Lists["additemtolist"];
lists.Remove("one");
lists.Clear();
//存储对象
Redis.Set<UserInfo>("user", new UserInfo { Name = "大壮他哥", Sex = "男" });
var userinfo = Redis.Get<UserInfo>("user");
Console.WriteLine(string.Format("Name is {0},Sex is {1}",userinfo.Name,userinfo.Sex));
//存储基本数据类型
Redis.Set<string>("name","大壮他哥");
Redis.Set<int>("age",);
Console.WriteLine(Redis.Get<string>("name"));
Console.WriteLine(Redis.Get<int>("age"));
Console.ReadLine();
}

以上操作参考张占岭的redis学习笔记,参考地址:http://www.cnblogs.com/lori/archive/2012/02/02/2335466.html

由于我的机器装的是Centos,所有没有Windos下的redis,需要在win下面跑redis的朋友可以参阅:http://www.cnblogs.com/yangecnu/p/Introduct-Redis-in-DotNET.html

写的都很好,很快就可以入门。

下面推荐大家几个网站:

Redis中文网:http://www.redis.net.cn/

可以在线编写Redis指令的网站:http://try.redis.io/

好了,先到这里吧。等周末继续研究下。研究这个的目的是准备做一个单点登录的demo,之前看到有的文章用的是mc,由于自己没有用到redis,所以借此机会来了解redis,好了,该洗洗睡了。

如何在.Net中使用Redis的更多相关文章

  1. (二)如何在.net中使用Redis

    Step1:使用NuGet工具安装Redis C# API,这里有多个API我们可以使用其中一个:

  2. redis-如何在工程中使用redis

    这里,我们介绍下如何使用redis作为缓存服务器使用在我们的工程中. 使用思路 对于java中的使用redis提供了一个jedis的jar包.我们在安装好我们的redis服务器以后,只需要通过redi ...

  3. 你知道如何在springboot中使用redis吗

    特别说明:本文针对的是新版 spring boot 2.1.3,其 spring data 依赖为 spring-boot-starter-data-redis,且其默认连接池为 lettuce ​  ...

  4. 如何在centos7中设置redis服务器开机自启动

    1.简单说明centos7系统中有不同类型的程序,一类是操作系统的服务程序,另一类是第三方程序,而redis就是第三方程序,每次关机后开机都要手工重新启动,很麻烦,那么如何把redis设置为开机自启动 ...

  5. 如何在cmd中启动redis

    首先要指定redis安装的目录,然后输入: redis-server.exe redis.windows.conf 如果成功,则会出现redis的标志,失败的话 请转帖到: http://www.cn ...

  6. .NET中使用Redis (二)

    很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务端,以及如何在.NET中调用Redis读取数据.本文简单介绍如何设计NoSQL数据库,以及如何使用Redis来存储对象. 和 ...

  7. .NET中使用Redis

    Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. 最近 ...

  8. ABP中使用Redis Cache(1)

    本文将讲解如何在ABP中使用Redis Cache以及使用过程中遇到的各种问题.下面就直接讲解使用步骤,Redis环境的搭建请直接网上搜索. 使用步骤: 一.ABP环境搭建 到http://www.a ...

  9. ABP中使用Redis Cache(2)

    上一篇讲解了如何在ABP中使用Redis Cache,虽然能够正常的访问Redis,但是Redis里的信息无法同步更新.本文将讲解如何实现Redis Cache与实体同步更新.要实现数据的同步更新,我 ...

随机推荐

  1. VS2008一个小bug

    vc工程的项目属性里MFC的使用有三项:默认“使用标准windows库”,修改为“在静态库中使用MFC”,然后再改回默认,项目变化如下: 今天的工程在改过后编译不能通过,手工把0改回2(1改回3)后O ...

  2. windows 7 里面的iis在哪里

    我的电脑------控制面板-----卸载程序------打开或关闭WINDOWS功能-----INTERNET信息服务------WEB管理工具下就能找到 给你找图你看看 向左转|向右转

  3. PC游戏编程(入门篇)(前言写的很不错)

    PC游戏编程(入门篇) 第一章 基石 1. 1 BOSS登场--GAF简介 第二章 2D图形程式初体验 2.l 饮水思源--第一个"游戏"程式 2.2 知其所以然一一2D图形学基础 ...

  4. BZOJ 2761 不重复数字 (Hash)

    题解:直接使用STL中的hash去重即可 #include <cstdio> #include <map> using namespace std; int ans[50010 ...

  5. 禁止apache显示目录索引

    1)修改目录配置: 复制代码 代码如下: <Directory "D:/Apache/blog.phpha.com">Options Indexes FollowSym ...

  6. 概率图模型(PGM)学习笔记(三)模式判断与概率图流

    我们依旧使用"学生网络"作为样例,如图1. 图1 首先给出因果判断(Causal Reasoning)的直觉解释. 能够算出来 即学生获得好的推荐信的概率大约是0.5. 但假设我们 ...

  7. 用Html5结合Qt制作一款本地化EXE游戏-太空大战(Space War)

    本次来说一说如何利用lufylegend.js引擎制作一款html5游戏后将其通过Qt转换成EXE程序.步骤其实非常简单,接下来就一步步地做一下解释和说明. 首先我们来开发一个有点类似于太空大战的游戏 ...

  8. HDU 1796 容斥原理 How many integers can you find

    题目连接   http://acm.hdu.edu.cn/showproblem.php?pid=1796 处男容斥原理  纪念一下  TMD看了好久才明白DFS... 先贴代码后解释 #includ ...

  9. Ext.MessageBox.Show使用Progress

    在此之前,先添加引用:以下引用方式仅供参考:由于我的extjs文件夹放在script文件夹下 <link href="~/Scripts/extjs/resources/ext-the ...

  10. 上传图片到文件夹并显示在GridView控件里面

    http://aspsnippets.com/Articles/Upload-images-to-folder-and-display-uploaded-images-in-ASPNet-GridVi ...