您的位置:首页 > 数据库 > Redis

缓存框架——Redis(一)

2015-07-03 20:48 761 查看

一,服务端的安装

服务端我用的是redis64-2.6.12.1,版本比较低,因为2.8的都安不上,可能是因为自己电脑是windows的原因吧。

解压完成之后,



进入到这个文件夹里面,输入:redis-server.exe redis.conf,服务开启成功之后,会这样子:



二,客户端程序的安装

与memcached一样,我们也可以通过cmd的方式操作缓存,在客户端程序里面,可以使用dll.

在。net项目里面,我使用的是ServiceStack.Redis.3.9.29.0。



三,简单Demo示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using ServiceStack.Common;
using ServiceStack.ServiceInterface;
using ServiceStack.Redis;
using ServiceStack.Text;

namespace TestRedis
{
class Program
{
static RedisClient Redis = new RedisClient("127.0.0.1", 6379);

static void Main(string[] args)
{
//将字符列表添加到redis
List<string> storeMembers = new List<string>{"one","two","three" };
storeMembers.ForEach(x=>Redis.AddItemToList("addItemToList",x));

//得到指定的key所对应的value集合
var members = Redis.GetAllItemsFromList("addItemToList");
members.ForEach(s=>Console.WriteLine("addItemToList:"+s));

//获取指定索引位置数据
var item = Redis.GetItemFromList("addItemToList",2);
Console.WriteLine(item);

//移除数据
var list = Redis.Lists["addItemToList"];
list.Clear();//清空
list.Remove("two");//移除指定键值

//存储对象(json序列化方法)它比object序列化方法效率高
Redis.Set<UserInfo>("userInfo", new UserInfo() { UserName="lhc",Age=12});
UserInfo userInfo = Redis.Get<UserInfo>("userInfo");
Console.WriteLine("name="+userInfo.UserName+";age="+userInfo.Age);

//存储值类型数据
Redis.Set<int>("my_age", 12);
int age = Redis.Get<int>("my_age");
Console.WriteLine("age=" + age);

//object序列化方式存储
var ser = new ServiceStack.Redis.Support.ObjectSerializer();
bool result=Redis.Set<byte[]>("userInfo2",ser.Serialize(new UserInfo(){UserName="pbc",Age=27}));
UserInfo userInfo2=ser.Deserialize(Redis.Get<byte[]>("userInfo2")) as UserInfo;
Console.WriteLine("name="+userInfo2.UserName+";age="+userInfo2.Age);

//也支持列表
List<UserInfo> userInfoList = new List<UserInfo> {
new UserInfo{UserName="lhccc",Age=22},
new UserInfo{UserName="bcss",Age=100}
};
Redis.Set<byte[]>("UserInfoList_serialize", ser.Serialize(userInfoList));
List<UserInfo> userList = ser.Deserialize(Redis.Get<byte[]>("UserInfoList_serialize")) as List<UserInfo>;
userList.ForEach(
u => {
Console.WriteLine("name="+u.UserName+";age="+u.Age);
}
);

Console.ReadKey();

}
}
}


个人感觉,redis比memcached支持数据类型多,而且内存数据可以持久化,性能也不错,关于具体的技术选项分析,见下月吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: