标签:
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-benchmark、redis-cli、redis-server、redis-stat 这四个文件,加上一个redis.conf就构成了整个redis的最终可用包。它们的作用如下:
现在就可以启动redis了,redis只有一个启动参数,就是他的配置文件路径。
redis-server /etc/redis.conf
注意,默认复制过去的redis.conf文件的daemonize参数为no,所以redis不会在后台运行,这时要测试,我们需要重新开一个终端。修改为yes则为后台运行redis。另外配置文件中规定了pid文件,log文件和数据文件的地址,如果有需要先修改,默认log信息定向到stdout.
下面是redis.conf的主要配置参数的意义:
这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是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", 6379);//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")[1]); 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",25); 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,好了,该洗洗睡了。
标签:
原文地址:http://www.cnblogs.com/dazhuangtage/p/5743195.html