Die Methode MEMCACHED get gibt immer null zurück

rr

Ich versuche, das Caching in unserer Anwendung mithilfe von Memcached zu implementieren. Ich konnte den Schlüssel und den Wert für den Server festlegen. Wenn ich jedoch versuche, den Wert abzurufen, wird immer eine Null zurückgegeben. Unten ist mein Beispielcode-Snippet.

//memcached configuration in my web config
<enyim.com>
  <memcached protocol="Binary">
    <servers>
      <add address="127.0.0.1" port="11211"/>
    </servers>
   <socketPool minPoolSize="10" maxPoolSize="100" 
                  connectionTimeout="00:10:00" deadTimeout="00:05:00"/>

  </memcached>
</enyim.com>
<configSections>
    <sectionGroup name="enyim.com">
        <section name="memcached"
           type="Enyim.Caching.Configuration.MemcachedClientSection,
           Enyim.Caching"/>
    </sectionGroup>
</configSections>





 //Get method in my controller
 public object GetSalesOrder()
 {
      using (Enyim.Caching.MemcachedClient mc = new Enyim.Caching.MemcachedClient())
      {
          mc.FlushAll();
          var salesOrders = salesOrderListService.GetSalesOrders();
          byte[] val;
          val = S.Serializer.objectToByteArray(salesOrders);
          mc.Store(Enyim.Caching.Memcached.StoreMode.Set, "salesOrderList", val);
          byte[] data = mc.Get<byte[]>("salesOrderList");
          var returnObj = S.Serializer.ByteArrayToObject<List<Model.SalesOrderList>>((byte[])val);

          return returnObj;
       }            
  }


//Model

[Serializable]
[ResourceType("SalesOrderList")]
public class SalesOrderList
{
    public int Id { get; set; }
    public string Code{ get; set; }
    public string CustomerName{ get; set; }
    public DateTime OrderDate { get; set; }
    public DateTime ShipDate { get; set; }
}

//Serializer class
public class Serializer
    {
        public static byte[] objectToByteArray<T>(T obj)
        {
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                formatter.Serialize(ms, obj);
                return ms.ToArray();
            }
        }

        public static Object ByteArrayToObject<T>(byte[] arrBytes)
        {
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                ms.Write(arrBytes, 0, arrBytes.Length);
                ms.Seek(0, System.IO.SeekOrigin.Begin);

                object obj = (Object)formatter.Deserialize(ms);

                return obj;
            }
        }
    }

Vermisse ich etwas

JEuvin

Eine Sache, die ich in Ihrem Code falsch sehe, ist, dass Sie keinen Cache-Schlüssel zum Speichern oder Abrufen Ihrer Daten haben. Die Art und Weise, wie ich es in meinem Code mache, ist wie folgt:

// create cachekey for storing and retrieving
var cacheKey = Guid.NewGuid().ToString();
// store for an hour
// memcachedClient.Store( StoreMode.Set, SanitizeCacheKey( cacheKey ), value, validFor )
mc.Store(StoreMode.Set, cacheKey , val, new TimeSpan(0, 1, 0, 0));

AccessCache.Get<byte[]>( cacheKey )

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Die Webview shouldInterceptRequest-Methode gibt immer null zurück

Die rekursive Java-Methode gibt immer null zurück

Generische Methode gibt immer NULL . zurück

Die Sitzung gibt immer null zurück

Get gibt immer null zurück

Die Codeigniter(3)-Formularvalidierung gibt immer FALSE für die GET-Methode zurück

Die Mock-Methode in Parallel.ForEach gibt immer null zurück

Die Typvariable gibt beim Ausführen der GetTypes () -Methode immer null zurück

Die verspottete asynchrone Methode in xUnit-Test gibt immer null zurück

Die Methode gibt unerwartet null zurück

Mockito - verspottete statische Methode gibt immer null zurück

Die indexOf-Methode in Listen gibt immer -1 zurück

Die Methode responsejs gibt immer wieder undefiniert zurück

Die Methode isEnabled () gibt immer true zurück

Die Post-Methode gibt immer nichts zurück

Die Methode Binary Tree Equals () gibt immer false zurück

Die Groupby Aggregate-Methode gibt immer NaN zurück

Die Methode gibt immer das gleiche Ergebnis zurück

Die Laravel-Ressource gibt immer null zurück

Elastic Search gibt die Punktzahl immer als Null zurück

Die morphOne-Beziehung gibt immer null zurück

Die Verwendung von @MockBean gibt immer null zurück

Die Firebase Cloud-Funktion gibt immer Null zurück

Die Variable Laravel .env gibt immer null zurück

Die TclTk-Bildbreite gibt immer Null zurück

Die Jquery-Ajax-Funktion gibt immer null zurück

Die Anforderung gibt immer ein Null-Fehlerobjekt zurück

Die LISP-Funktion gibt immer Null zurück

Die Codeigniter-Abfrage gibt immer null zurück

TOP Liste

heißlabel

Archiv