Exemple #1
0
 /// <summary>
 /// 删除指定缓存
 /// </summary>
 /// <param name="key"></param>
 public static void RemoveCache(string key)
 {
     if (mclient.KeyExists(key))
     {
         mclient.Delete(key);
     }
 }
Exemple #2
0
        static void Main(string[] args)
        {
            //就是构建了一个集群 安装memcached 的使用 我们是一个客户端使用
            //在实际项目中使用 可以在哪些地方使用 有一个唯一的KeyValue 来获取一个单独的数据
            //项目中玩耍的东西。。
            string[] serverlist = { "127.0.0.1:11211", "10.0.0.132:11211" };

            //初始化池
            SockIOPool pool = SockIOPool.GetInstance();

            pool.SetServers(serverlist);

            pool.InitConnections = 3;
            pool.MinConnections  = 3;
            pool.MaxConnections  = 5;

            pool.SocketConnectTimeout = 1000;
            pool.SocketTimeout        = 3000;

            pool.MaintenanceSleep = 30;
            pool.Failover         = true;

            pool.Nagle = false;
            pool.Initialize();

            // 获得客户端实例
            MemcachedClient mc = new MemcachedClient();

            mc.EnableCompression = false;

            Console.WriteLine("------------测  试-----------");
            mc.Set("test", "my value"); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"

            if (mc.KeyExists("test"))   //测试缓存存在key为test的项目
            {
                Console.WriteLine("test is Exists");
                Console.WriteLine(mc.Get("test").ToString());  //在缓存中获取key为test的项目
            }
            else
            {
                Console.WriteLine("test not Exists");
            }

            Console.ReadLine();

            mc.Delete("test");  //移除缓存中key为test的项目

            if (mc.KeyExists("test"))
            {
                Console.WriteLine("test is Exists");
                Console.WriteLine(mc.Get("test").ToString());
            }
            else
            {
                Console.WriteLine("test not Exists");
            }
            Console.ReadLine();

            SockIOPool.GetInstance().Shutdown();  //关闭池, 关闭sockets
        }
Exemple #3
0
        static void Main(string[] args)
        {
            string[] serverList = { "192.168.1.120:11211", "10.0.0.137:11211" };

            //初始化池
            SockIOPool pool = SockIOPool.GetInstance();

            pool.SetServers(serverList);

            pool.InitConnections = 3;
            pool.MinConnections  = 3;
            pool.MaxConnections  = 5;

            pool.SocketConnectTimeout = 1000;
            pool.SocketTimeout        = 3000;

            pool.MaintenanceSleep = 30;
            pool.Failover         = true;

            pool.Nagle = false;
            pool.Initialize();

            //获得客户端实例
            MemcachedClient mc = new MemcachedClient();

            mc.EnableCompression = false;

            Console.WriteLine("------------测  试-----------");
            string key = "test";

            mc.Set(key, "my value");              //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"

            if (mc.KeyExists(key))
            {
                Console.WriteLine("test is Exists");
                Console.WriteLine(mc.Get("test").ToString());                  //在缓存中获取key为test的项目
            }
            else
            {
                Console.WriteLine("test not Exists");
            }
            Console.ReadLine();

            //移除缓存中key为test的项目
            mc.Delete(key);
            if (mc.KeyExists(key))
            {
                Console.WriteLine("test is Exists");
                Console.WriteLine(mc.Get("test").ToString());
            }
            else
            {
                Console.WriteLine("test not Exists");
            }
            Console.ReadLine();

            //关闭池, 关闭sockets
            SockIOPool.GetInstance().Shutdown();
        }
Exemple #4
0
 public static bool Delete(string key)
 {
     if (mc.KeyExists(key))
     {
         return(mc.Delete(key));
     }
     return(false);
 }
Exemple #5
0
 /// <summary>
 /// 添加缓存信息(如果存在缓存信息则直接重写设置,否则添加)
 /// 使用:MemcacheHelper.GetInstance().Add(key,value)
 /// </summary>
 /// <param name="key">需要缓存的键</param>
 /// <param name="value">需要缓存的值</param>
 public void Add(string key, object value)
 {
     if (_client.KeyExists(key))
     {
         _client.Set(key, value);
     }
     _client.Add(key, value);
 }
Exemple #6
0
 public object Get(string key)
 {
     if (mCacheClient.KeyExists(key))
     {
         return(mCacheClient.Get(key));
     }
     return(null);
 }
Exemple #7
0
 /// <summary>
 /// 取值泛型
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="key"></param>
 /// <returns></returns>
 public static T Get <T>(string key)
 {
     if (mc.KeyExists(key))
     {
         return((T)mc.Get(key));
     }
     else
     {
         return(default(T));
     }
 }
 /// <summary>
 /// 缓存是否存在
 /// </summary>
 /// <param name="key">键</param>
 /// <returns></returns>
 public static bool CacheIsExists(string key)
 {
     if (mc.KeyExists(key))
     {
         return true;
     }
     else
     {
         return false;
     }
 }
 public void Add(string key, object value, DateTime expireDate)
 {
     if (mc.KeyExists(key))
     {
         mc.Set(key, value, expireDate);
     }
     else
     {
         mc.Add(key, value, expireDate);
     }
 }
Exemple #10
0
 //查询
 protected void Button2_Click(object sender, EventArgs e)
 {
     GetDb(out MemcachedClient MClient);
     if (MClient.KeyExists("key1"))
     {
         Response.Write(MClient.Get("key1"));
     }
     else
     {
         Response.Write("<script>alert('查询失败!')</script>");
     }
 }
Exemple #11
0
        public void Set(string key, object data, int expire)
        {
            string json = data.ToJsonString();

            if (MemClient.KeyExists(key))
            {
                MemClient.Replace(key, json, DateTime.Now.AddMinutes(expire));
            }
            else
            {
                MemClient.Set(key, json, DateTime.Now.AddMinutes(expire));
            }
        }
Exemple #12
0
 public T Get <T>(string key, Func <T> acquire)
 {
     key = preFix + key;
     if (mc.KeyExists(key))
     {
         return(_Get <T>(key));
     }
     else
     {
         T result = acquire();
         _Set(key, result);
         return(result);
     }
 }
        public void TestDelete()
        {
            //Test Delete
            MemcachedClient mc = new MemcachedClient();

            if (mc.KeyExists("SetTest"))
            {
                mc.Delete("SetTest", null, DateTime.MaxValue);
                if (!mc.KeyExists("SetTest"))
                {
                    HandleLogs("[Cmd=Delete]Key为SetTest的值已经被删除");
                }
            }
        }
Exemple #14
0
        private void button1_Click(object sender, EventArgs e)
        {
            string[] serverlist = { "127.0.0.1:11211", "172.0.0.1:11211" };
            //初始化池
            SockIOPool pool = SockIOPool.GetInstance();

            pool.SetServers(serverlist);
            pool.InitConnections      = 3;
            pool.MinConnections       = 3;
            pool.MaxConnections       = 5;
            pool.SocketConnectTimeout = 1000;
            pool.SocketTimeout        = 3000;
            pool.MaintenanceSleep     = 30;
            pool.Failover             = true;
            pool.Nagle = false;
            pool.Initialize();
            // 获得客户端实例
            MemcachedClient mc = new MemcachedClient();

            mc.EnableCompression = false;
            Console.WriteLine("------------测  试-----------");
            mc.Set("test", "my value");      //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"
            if (mc.KeyExists("test"))        //测试缓存存在key为test的项目
            {
                Console.WriteLine("test is Exists");
                Console.WriteLine(mc.Get("test").ToString());                 //在缓存中获取key为test的项目
            }
            else
            {
                Console.WriteLine("test not Exists");
            }

            Console.ReadLine();

            mc.Delete("test");  //移除缓存中key为test的项目

            if (mc.KeyExists("test"))
            {
                Console.WriteLine("test is Exists");
                Console.WriteLine(mc.Get("test").ToString());
            }
            else
            {
                Console.WriteLine("test not Exists");
            }
            Console.ReadLine();

            SockIOPool.GetInstance().Shutdown(); //关闭池, 关闭sockets
        }
Exemple #15
0
        static void Main(string[] args)
        {
            string[] serverList = { "192.168.199.130:11211" };
            //创建一个Memcache连接池
            SockIOPool sockPool = SockIOPool.GetInstance("MemcachedPool");

            //Set Memcache Server List
            sockPool.SetServers(serverList);
            // Set Servers Initial Connections Number
            sockPool.InitConnections = 3;
            sockPool.MinConnections  = 3;
            sockPool.MaxConnections  = 5;

            //Set TimeOut of Connection
            sockPool.SocketConnectTimeout = 1000;
            //Set TimeOut of Reads
            sockPool.SocketTimeout = 3000;

            sockPool.MaintenanceSleep = 30;
            sockPool.Failover         = true;

            sockPool.Nagle = false;
            sockPool.Initialize();

            MemcachedClient mClient = new MemcachedClient();

            mClient.EnableCompression = false;
            mClient.PoolName          = "MemcachedPool";

            mClient.Set("key", "value");
            if (!mClient.KeyExists("key"))
            {
                Console.WriteLine("不存在该key");
            }
            else
            {
                Console.WriteLine(mClient.Get("key").ToString());
                mClient.Delete("key");
                if (!mClient.KeyExists("key"))
                {
                    Console.WriteLine("不存在该key");
                }
                else
                {
                    Console.WriteLine(mClient.Get("key").ToString());
                }
            }
            SockIOPool.GetInstance("MemcachedPool").Shutdown();
        }
Exemple #16
0
        /// <summary>
        ///     Determines if the givenn key is present in cache for the current object.
        /// </summary>
        /// <param name = "data"></param>
        /// <param name = "key"></param>
        /// <returns></returns>
        public static Boolean KeyExists(this IDataIdentify data, String key)
        {
            try
            {
                var translateKey = data.TranslateKey(key);

                return(DefaultCache.KeyExists(translateKey));
            }
            catch (Exception e)
            {
                STrace.Exception(typeof(LogicCache).FullName, e);

                return(false);
            }
        }
Exemple #17
0
        static void Main(string[] args)
        {
            string[] servidores = { "127.0.0.1:11211" };

            SockIOPool pool = SockIOPool.GetInstance();

            pool.SetServers(servidores);
            pool.Initialize();

            var cache = new MemcachedClient();

            string chave   = "dados";
            string retorno = "";

            if (cache.KeyExists(chave))
            {
                retorno = cache.Get(chave).ToString();
            }
            else
            {
                cache.Set(chave, DateTime.Now.ToString(), DateTime.Now.AddMinutes(1));
                retorno = "primeiro acesso ao cache";
            }

            Console.WriteLine(retorno);
            Console.Read();
        }
Exemple #18
0
        public static void MemCache()
        {
            InitMemcache();
            MemcachedClient mc = new MemcachedClient();

            mc.EnableCompression = false;
            DisplayMenu();
            while (true)
            {
                string selected = Console.ReadLine();
                switch (selected)
                {
                case "1":
                    mc.Set("test", "my value");
                    break;

                case "2":
                    if (mc.KeyExists("test"))
                    {
                        Console.WriteLine(mc.Get("test").ToString());
                    }
                    else
                    {
                        Console.WriteLine("it not exists test");
                    }
                    break;

                default:
                    break;
                }
            }
        }
        //更多的是存储一个自定义的类的实例对象。这就需要使用到序列化,下面我们来新加一个类MyObject,让其作为可序列化的对象来存储进Memcached中
        public void MemcachedTest(string[] args)
        {
            //初始化池
            SockIOPool sock = SockIOPool.GetInstance();

            sock.SetServers(serverlist.ToArray()); //添加服务器列表
            sock.InitConnections      = 3;         //设置连接池初始数目
            sock.MinConnections       = 3;         //设置最小连接数目
            sock.MaxConnections       = 5;         //设置最大连接数目
            sock.SocketConnectTimeout = 1000;      //设置连接的套接字超时。
            sock.SocketTimeout        = 3000;      //设置套接字超时读取
            sock.MaintenanceSleep     = 30;        //设置维护线程运行的睡眠时间。如果设置为0,那么维护线程将不会启动;

            //获取或设置池的故障标志。
            //如果这个标志被设置为true则socket连接失败,
            //将试图从另一台服务器返回一个套接字如果存在的话。
            //如果设置为false,则得到一个套接字如果存在的话。否则返回NULL,如果它无法连接到请求的服务器。
            sock.Failover = true;            //如果为false,对所有创建的套接字关闭Nagle的算法。
            sock.Nagle    = false;

            sock.Initialize();

            MemcachedClient mc = new MemcachedClient();

            mc.EnableCompression = true; //是否启用压缩数据

            //mc.Set(key,val);//设置 键值
            //mc.KeyExists(key) //键 是否存
            //mc.Get(key)   //获取 一个键值
            //mc.Delete(key);// 删除 键值

            Console.WriteLine("----------------------------Set-----------");
            mc.Set("key1", "value1");
            Console.WriteLine(mc.Get("key1"));
            Console.WriteLine("---------------------------replay---------");
            mc.Replace("key1", "Replay new Key1");
            Console.WriteLine(mc.Get("key1"));
            Console.WriteLine("---------------------------键值是否存在----");
            if (mc.KeyExists("key2"))
            {
                Console.WriteLine("key2存在");
            }
            else
            {
                Console.WriteLine("key2不存在,设置新值");
                mc.Set("key2", "New key2");
            }
            Console.WriteLine("-------------------------删除数据--------");
            mc.Delete("key2");
            Console.WriteLine("删除之后的数据: " + mc.Get("key2"));

            Console.WriteLine("-------------------------数据过期--------");
            mc.Add("key3", "新数据三内容", DateTime.Now.AddMilliseconds(5000));
            Console.WriteLine(mc.Get("key5"));
            System.Threading.Thread.Sleep(6000);
            Console.WriteLine("过期: " + mc.Get("key5"));

            Console.ReadLine();
        }
Exemple #20
0
 public static bool Delete(string key)
 {
     if (mc.KeyExists(key))
     {
         mc.Delete(key);
     }
     return(true);
 }
Exemple #21
0
        public void Remove(string key)
        {
            var thiskey = getKey(key);

            if (mc.KeyExists(thiskey))
            {
                mc.Delete(thiskey);
            }
        }
 /// <summary>
 /// 判断pkey关键字是否在Pmc中
 /// </summary>
 /// <param name="pMC"></param>
 /// <param name="pKey"></param>
 /// <returns></returns>
 public static bool IsCache(string pKey)
 {
     if (MemcacheHelperInit())
     {
         if (mc.KeyExists(pKey))
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
Exemple #23
0
        /// <summary>
        /// Determines whether an object with the given key exists in the cache.
        /// </summary>
        /// <param name="key">The key of the object.</param>
        /// <returns>True if the key exists in the cache, false otherwise.</returns>
        public bool Contains(object key)
        {
            if (key == null)
            {
                return(false);
            }

            return(_client.KeyExists(GetCacheKey(key)));
        }
Exemple #24
0
        internal static void SetValue(string sessionId, string userName, DateTime dateTime)
        {
            MemcachedClient _mc = GetClient();

            if (_mc.KeyExists(sessionId))
            {
                _mc.Delete(sessionId);
            }
            _mc.Add(sessionId, userName, dateTime);
        }
Exemple #25
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static bool Delete(string key)
        {
            bool isOK = false;

            if (m_memcachedClient.KeyExists(key))
            {
                isOK = m_memcachedClient.Delete(key);
            }
            return(isOK);
        }
Exemple #26
0
 /// <summary>
 /// 缓存是否存在
 /// </summary>
 /// <param name="pMC"></param>
 /// <param name="pKey"></param>
 /// <returns></returns>
 private static bool IsCache(MemcachedClient pMC, string pKey)
 {
     if (pMC.KeyExists(pKey))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #27
0
 /// <summary>
 /// 清除缓存
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 public static bool DeleteMemcached(string key)
 {
     if (mc.KeyExists(key))
     {
         return(mc.Delete(key));
     }
     else
     {
         return(false);
     }
 }
Exemple #28
0
        public void TestSet()
        {
            MemcachedClient mc = new MemcachedClient();

            mc.EnableCompression = false;
            mc.Add("SetTest", "123");
            //Test Set
            mc.Set("SetTest", "public bool Set(string key, object value, DateTime expiry, int hashCode)");
            if (mc.KeyExists("SetTest"))
            {
                HandleLogs("[Cmd=Set]SetTest的值是:" + mc.Get("SetTest").ToString());
            }
        }
        public void TestGet()
        {
            MemcachedClient mc = new MemcachedClient();

            mc.Add("Get", "Get A Cmd=Get");
            if (mc.KeyExists("Get"))
            {
                Object o = mc.Get("Get");
                if (o != null)
                {
                    HandleLogs("[Cmd=Get]Get的值是:" + o.ToString());
                    mc.Delete("Get");
                }
            }
        }
Exemple #30
0
        public override string Get(PrimaryKeyEntity entity)
        {
            MemcachedClient client = new MemcachedClient();

            if (client.KeyExists(entity.Prefix))
            {
                long id = client.Increment(entity.Prefix, 1);
                return(string.Format("{0}{1}",
                                     entity.IsMustPrefix ? entity.Prefix : string.Empty,
                                     entity.IsMustFillWithChar ? id.ToString().PadLeft(entity.NumberLength, entity.FillChar) : id.ToString()));
            }
            else
            {
                return(string.Empty);
            }
        }