现在位置首页 / 项目实战 /正文

Redis学习笔记 String类型及C#调用(一)

作者: 春暖花开 | 2014年11月11日| 热度:℃ | 评论: |参与:

Redis学习笔记  各篇幅目录,热乎乎出炉,欢迎点击


上篇  《Redis学习笔记一 玩耍Redis及C#调用》  后,从此篇开始,分类型介绍型各类型操作命令和 C#使用端的方法。

 string类型的操作命令,及对应的C#客户端的方法。


1、

set key value [EX seconds] [PX milliseconds] [NX|XX]

设置键值。如果存在key,覆盖值,不考虑原有类型。
[EX seconds]  超时时间,秒。 可选的。
[PX milliseconds] 超时时间,毫秒。 可选的。如果2个超时时间同时设置,最后一个起作用。
[NX|XX] NX,当key不存在时才能set值,否则报<nil>错误。
              XX,当key存在时才能set值,否则报<nil>错误。
返回值:成功时“OK“、<nil>;

示例:

set key1 "Hello"   //赋值
set key1 "Hello" EX 20  //赋值,但是key超时时间为20秒后
set key1 "Hello" PX 1000  //赋值,但是key超时时间为1000毫秒后
set key1 "Hello" nx  //当key1不尊在时,才会创建新的key,并赋值,否则报<nil>错误。
set key1 "Hello" xx  //当key1尊在时,才会赋值,否则报<nil>错误。
get key1     //获取值

如图1

 

图1


对应C#方法:
 RedisNativeClient
       

         public void Set(string key, byte[] value);
         public void Set(string key, byte[] value, int expirySeconds, long expiryMs = 0, bool? exists = null);

 RedisClient,继承自 RedisNativeClient

        public bool Set<T>(string key, T value);  //<T>将会以json串形式存在redis
        public bool Set<T>(string key, T value, DateTime expiresAt);
        public bool Set<T>(string key, T value, TimeSpan expiresIn);


2、

get key

获取值。当key不存在是,返回<nil>错误。
get 只能获取 string 类型的数据。
返回值: string类型value 或 nil。
示例:

get key1

如图1-2

图1-2



对应C#方法:
RedisNativeClient
   

    public byte[] Get(string key);

RedisClient,继承自 RedisNativeClient
    

    public T Get<T>(string key);


3、

Append  key value

key 存在,把value追加上末尾。 如果不存在,串讲空值,并把value追加上末尾。
返回值:追加后的字符串长度


示例:  

append key2 "Hello" 
append key2 "World"
Get key2 //值为:"HelloWorld"

 如图 2

图 2


对应C#方法:
RedisNativeClient

        public long Append(string key, byte[] value);

-----------------------------------------------------------------------------------------------

C# demo 代码:

下载C# demo  http://pan.baidu.com/s/1hqglpju

/// <summary>
        /// 测试 set get append 命令
        /// </summary>
        static void get_set_append()
        {
            using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 0))
            {
                var key = "key2";   //redis中,Key1 是 string 类型。
                var val = "";
                //Set Get
                
                key = "key2Expire2";
                if (!redisClient.ContainsKey(key)) //判断是否存在 key
                {
                    var setValue = "this is set command from C# client.";
                    redisClient.Set(key, Encoding.UTF8.GetBytes(setValue), 100, 1000000, false);  //(key, "c# test expire value2", DateTime.Now.AddSeconds(50));
                    val = redisClient.Get<string>(key);
                    Console.Write(key + "的values=   " + val);
                }
                if (!redisClient.ContainsKey(key))
                {
                    redisClient.Set<string>(key, "c# test value");  //赋值 
                    val = redisClient.Get<string>(key);   //获取
                    Console.Write(key + "的values=   " + val);
                }
                key = "key2Expire";
                if (!redisClient.ContainsKey(key))
                {
                    redisClient.Set<string>(key, "c# test expire value2", DateTime.Now.AddSeconds(50));  //超时时间为50秒
                    val = redisClient.Get<string>(key);
                    Console.Write(key + "的values=   " + val);
                }
                key = "key2Object";
                if (!redisClient.ContainsKey(key))
                {
                    var obj = new MyTestClass { ID = 1, Name = "共青团路", Created = DateTime.Now }; //存入一个对象。 内部会转换为 json 。
                    redisClient.Set<MyTestClass>(key, obj, DateTime.Now.AddMinutes(10));
                    MyTestClass valObj = redisClient.Get<MyTestClass>(key);
                    Console.Write("\r\n "+key + "的values:   ID=" + valObj.ID + " \r\nName=" + valObj.Name + "  \r\n CreateTime=" + valObj.Created.ToString());
                }
                //Append
                key = "key2Append";
                if (!redisClient.ContainsKey(key))
                {
                    redisClient.Set(key, Encoding.UTF8.GetBytes("c# client")); //先设置个默认值
                    redisClient.Append(key, Encoding.UTF8.GetBytes(" Append"));  //追加内容
                    val = redisClient.Get<string>(key);
                    Console.Write("\r\n" + key + "的values=   " + val);
                }
            }
        }



点击阅读本文所属分类的更多文章: 项目实战 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询