【不求甚解】无脑上手Redis

项目引用(.Net项目,VS)

nuget搜索安装ServiceStack.Redis

接入

IRedisClient:IRedisClient client = new RedisClient();

字符串操作:

client.Set<string>("name","张三");    //设置
client.Get<string>("name");    //获取


client.Set<string>("name","张三",TimeSpan.FromSecond(60));  //设置过期时间为60秒
client.Set<string>("name","张三",DateTime.Now.AddDays(1));  //设置过期时间为当前时间的一日后

client.AppendToValue("name","喜欢打dota");    //字符串追加》》张三喜欢打dota

-------------------------------------------------------------
//获取原来的值然后赋新值  GetAndSetValue()
client.Set("demo","张三");
var str = client.GetAndSetValue("demo","李四");   //str>>张三
client.Get<string>("demo");    //李四

-------------------------------
//增、减
client.Increment("count",1);   // "count ":1
client.Increment("count",3);    //"count":4
clinet.IncrementValueBy("count",2);    //"count":6   IncrementValueBy()等同于Increment()

client.Decrement("count",5);    //"count":1    减

Add()与Set()Add():如果key不存在,Add为True,否则false;   Set():总是为True,总是在Update

判断key是否存在:

if(client.ContainsKey("key1"))

获取这个key的类型:

client.GetEntryType("key1");

哈希类型操作:

client.SetEntryInHash("stu","name","张三");
client.SetEntryInHash("stu","age","18");

var name = client.GetValueFromHash("stu","name");    //name>>张三
------------------------------------------
//批量
Dictionary<string,string> stu = new Dictionary<string,string>();
stu.Add("name","张三");
stu.Add("age","18");
client.SetRangeInHash("stu",stu);
var dic = client.GetAllEntriesFromHash("stu");        //返回的是一个Dictionary

哈希操作对象:

client.SetEntryInHashIfNotExists("stu","name","张三");   //bool类型


client.StoreAsHash<ModelUser>(new ModelUser{ID="001",Name="张三",Address="sh"});
var name = client.GetFromHash<ModelUser>("001").Address;  //name>>sh

如果想修改对象的属性值,可以首先把一个对象进行Json序列化,存储在Redis的String类型里,如果需要改变对象中的一个属性值,先读出Json字符串,反系列化,修改对象属性值,然后在转成Json字符串存储。

Hash的一些其他操作:

var hashId = "user";
Dictionary<string,string> user = new Dictionary<string,string>();
user.Add("name","张三") ;
user.Add("sex","男");
user.Add("age","18");
client.SetRangeInHash(hashId,user);
var count = client.GetHashCount(hashId);    //3

var keys = client.GetHashKeys(hashId);    //读取所有的field,"name","sex","age"

var values = client.GetHashValues(hashId);    //读取所有的values

client.RemoveEntryFromHash(hashId,"age");    //移除"age"


if(client.HashContainsEntry("user","name"))        //判断field "name"是否存在
{

}



client.IncrementValueInHash(hashId,"age",2);    自增,age加2

List类型操作

IRedisClient client = new RedisClient("服务器","端口号");

client.AddItemToList("ListA",JsonConvert.SerializeObject(modelA));    //顺序添加

client.PushItemToList("ListA",JsonConvert.SerializeObject(modelB));    //追加

client.PrependItemToList("ListA",JsonConvert.SerializeObject(modelC));    //插队加,前头加

client.ExpireEntryAt("ListA",DateTime.Now.AddSecond(10));    //设置过期时间为当前十秒后

client.GetListCount("ListA");    //获取行数

//批量操作
client.AddRangeToList("list",new List<string>{"a","b","c"});    //批量添加
var values = client.GetRangeFromList("list",0,1);    //根据下标查询,values:"a","b"

//从一个list的尾部移除一个元素,把这个元素添加到另一个list的头部,并返回这个元素
client.PopAndPushItemBetweenLists("list","newList");

client.RemoveEndFromList("list");    //移除并返回尾部
client.RemoveStartFromList("list");    //移除并返回头部

client.GetTimeToLive("list");    //    获取当前key的过期时间

client.SetItemInList("list",0,"abc");    //根据下表修改value

待续...洗漱睡觉

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值