예제 #1
0
 private static void ChangeTranslation(RedisClient client)
 {
     Console.WriteLine("Enter word.");
     string word = Console.ReadLine();
     byte[] wordInBytes = Extensions.ToAsciiCharArray(word);
     Console.WriteLine("Enter translation.");
     string translation = Console.ReadLine();
     byte[] translationInBytes = Extensions.ToAsciiCharArray(translation);
     if (!string.IsNullOrWhiteSpace(word) && !string.IsNullOrWhiteSpace(translation))
     {
         if (client.HExists(dictionary, wordInBytes) == 1)
         {
             client.HSet(dictionary, wordInBytes, translationInBytes);
             Console.WriteLine("Translation of the word {0} is changed.", word);
         }
         else
         {
             Console.WriteLine("There is no word {0}.", word);
         }
     }
     else
     {
         Console.WriteLine("You enter null or empty string for word or translation. Please try again.");
     }
 }
예제 #2
0
 public static void EditWord(RedisClient words)
 {
     Console.Write("Enter word for edit: ");
     string editWord = Console.ReadLine().ToLower();
     Console.Write("Enter new translation: ");
     string translation = Console.ReadLine().ToLower();
     long countWords = words.HExists("words", Extensions.ToAsciiCharArray(editWord));
     if (countWords>0)
     {
         words.HSet("words", Extensions.ToAsciiCharArray(editWord), Extensions.ToAsciiCharArray(translation));
     }
     else
     {
         Console.WriteLine("This word is not exist");
     }
 }
예제 #3
0
        private void DoUpdateChangeKey(RedisClient client, string setId, object keyByte, byte[] values, bool isHash, byte[] buffer)
        {
            string key = isHash
                ? Encoding.UTF8.GetString((byte[])keyByte)
                : keyByte.ToString();
            dynamic entity = null;
            try
            {
                entity = CovertEntityObject(key, values);
                CacheType cacheType = CacheType.None;
                if (entity != null)
                {
                    SchemaTable schema;
                    Type entityType = entity.GetType();
                    if (!EntitySchemaSet.TryGet(entityType, out schema))
                    {
                        EntitySchemaSet.InitSchema(entityType);
                    }
                    if (schema != null || EntitySchemaSet.TryGet(entityType, out schema))
                    {
                        cacheType = schema.CacheType;
                    }
                    if (cacheType != CacheType.None)
                    {
                        string redisKey = cacheType == CacheType.Dictionary
                            ? key.Split('|')[0]
                            : key.Split('_')[0];

                        using (IDataSender sender = DataSyncManager.GetRedisSender(schema, redisKey))
                        {
                            sender.Send(entity);

                        }
                    }

                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("ChangeKey:{0} error:{1}", key, ex);
            }
            if (isHash)
            {
                client.HDel(setId, (byte[])keyByte);
            }
            else
            {
                client.ZRem(setId, buffer);
            }
            if (entity != null)
            {
                Type type = entity.GetType();
                string entityKey = string.Format("{0},{1}", key, type.Assembly.GetName().Name);
                client.HSet("__GLOBAL_SQL_CHANGE_KEYS_NEW", Encoding.UTF8.GetBytes(entityKey), new byte[] { 1 });
            }

        }
예제 #4
0
 public static void AddEntry(RedisClient redisIO, Entry entry)
 {
     redisIO.HSet("Dictonary", entry.Name.ToAsciiCharArray(), entry.Translation.ToAsciiCharArray());
 }
 static void AddNewEntry(RedisClient redisClient, string word, string translation)
 {
     redisClient.HSet(
         DictionaryStructure,
         Extensions.ToAsciiCharArray(word),
         Extensions.ToAsciiCharArray(translation));
 }