Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस से डेटा मैप करने का कुशल तरीका

आप आलसी लोडिंग का उपयोग कर सकते हैं ताकि Roles यदि आवश्यक हो तो संग्रह केवल लोड किया जाता है। यह आपके FullEmployee . में एक भूमिका भंडार को इंजेक्ट करके किया जाता है इकाई।

आप सभी के लिए भूमिकाओं को एक बार लोड भी कर सकते हैं:अपने FullEmployeeMapper में भूमिकाओं का एक शब्दकोश रखें और जैसे ही वे लोड होते हैं इसे भरें, फिर कैश को क्वेरी करने से पहले इसे जांचें। उम्मीद है कि आप कार्य की प्रत्येक इकाई के लिए एक उदाहरण फिर से बनाएंगे ताकि प्रत्येक नए कार्य के लिए शब्दकोश ताज़ा हो और आप मल्टीथ्रेडिंग मुद्दों से बच सकें।

List के साथ नमूना कार्यान्वयन :

class FullEmployeeMapper : IMapToNew<Employee, FullEmployee>
{
    private List<FullRole> _roles = new List<FullRole>();
    public FullEmployee Map(Employee source)
    {
        FullEmployee employee = new FullEmployee()
        {
            Id = source.Id,
            Age = source.Age,
            BirthDate = source.BirthDate,
            Name = source.Name
        };

        var mapper = new FullRoleMapper();
        var client = new RedisClient("localhost");

        employee.Roles = _roles.Where(r => source.Roles.Contains(r.Id)).ToList();
        if (employee.Roles.Count != source.Roles.Count)
        {
            var newRoles = client
                .As<Role>()
                .GetByIds(source.Roles.Except(employee.Roles.Select(r => r.Id)))
                .Select(r => mapper.Map(r)))
                .ToList();
            employee.Roles.AddRange(newRoles);
            _roles.AddRange(newRoles);
        }
        return employee;
    }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस लुआ स्क्रिप्ट काम नहीं कर रही है

  2. रेडिस में हैश की सरणी कैसे स्टोर करें?

  3. अपने वर्डप्रेस इंस्टॉलेशन को गति देने के लिए रेडिस ऑब्जेक्ट कैश का उपयोग करना

  4. रेडिस हैश का उपयोग कैसे करें

  5. पब-सब पैटर्न के लिए zmq बनाम रेडिस