redis-py 4.1.0 রিলিজ হয়েছে!
রেডিসের জন্য পাইথন সাপোর্ট এক দশক ধরে বেড়েছে, সপ্তাহে ১ মিলিয়নেরও বেশি ডাউনলোড হাসিল করে, এবং আমরা গর্বিত হয়ে লেটেস্ট রিলিজ, redis-py 4.1.0 ঘোষণা করছি!
এই রিলিজ আমাদের রেডিস ৬.২-এ সম্পূর্ণ রেডিস কমান্ড সাপোর্টের অতি নিকটে আনে। আমরা বিদ্যমান কমান্ডগুলোর মিসিং অপশনগুলোর সাপোর্ট যোগ করেছি, সেন্টিনেল কানেকশনের জন্য SSL সাপোর্ট, এবং সাধারণভাবে ডেভেলপার অভিজ্ঞতা উন্নত করেছি। এতে বড় স্ট্রাকচারাল পরিবর্তনও এসেছে যেমন পাইথন ৩.৬-এ ফোকাস, এবং এমনকি পাইথন ৩.১০ সাপোর্ট। আমরা আমাদের ক্লায়েন্ট ডকুমেন্টেশন রিভ্যাম্প করেছি, রেডিস কমান্ড খুঁজে পেতে সহজ করে দিয়েছি, এবং সবাইকে জড়িত হওয়ার জন্য উৎসাহিত করছি! সবচেয়ে গুরুত্বপূর্ণ, আমরা এটি ন্যূনতম ব্যাঘাতের সাথে করেছি, তাই আপনি কম্প্যাটিবিলিটি ইস্যু ছাড়া আপগ্রেড করতে পারেন।
সর্বনবীন রেডিস কমান্ডগুলোর সাপোর্ট
রেডিস ৬.২ সাথে নতুন রেডিস কমান্ডের একটি বিশাল পরিসর এসেছে, এবং এখন পাইথনের সাথে সেগুলো ব্যবহার করা যেন কখনোংও سهل। একক কমান্ডে ডাটা ফেচ করতে এবং এর এক্সপাইরেশন আপডেট করতে GETEX থেকে, আপনার রেডিস ইনস্ট্যান্স ম্যানেজ করতে CLIENT INFO এবং CLIENT KILL দিয়ে ক্লায়েন্ট ডিসকানেক্ট করার সক্ষমতা - redis-py 4.1.0 আপনাকে কভার করেছে। নিচে redis-py 4.1.0-এ যোগ করা ৩০টিরও অধিক কমান্ডের দুটি উদাহরণ দেখানো হলো:
### GETEX import redis r = redis.Redis() r.set('somekey', 'hello') r.getex('somekey', ex=15) # returns 'Hello' r.ttl('somekey') # returns 15 ### CLIENT INFO AND KILL import redis r = redis.Redis() r2 = redis.Redis() r.client_setname('redis-py-c1') r2.client_setname('redis-py-c2') clients = [client for client in r.client_list() if client.get('name') in ['redis-py-c1', 'redis-py-c2']] clients_by_name = dict([(client.get('name'), client) for client in clients]) r.client_kill_filter(laddr=clients_by_name['redis-py-c2'].get('laddr'))
ফার্স্ট-ক্লাস রেডিস মডিউল সাপোর্ট
redis-py 4.0 পাইথন লাইব্রেরির প্রথম সংস্করণ ছিল যা রেডিস মডিউলগুলির জন্য ফার্স্ট-ক্লাস সাপোর্ট আনয়ন করেছিল। redis-py 4.1.0 রিলিজের সাথে, আমাদের এখন রেডিসজেason, রেডিসার্চ, রেডিস্টাইমসিরিজ, রেডিসগ্রাফ, এবং রেডিসব্লুমের জন্য সাপোর্ট আছে। সঠিক কথা, আপনি সহজেই জেসন ডাটা রেডিসে সংরক্ষণ করতে পারেন! আপনি সেটা অপারেট করতে পারেন - আপনি সেটা সার্চও করতে পারেন! শুধু মনে রাখবেন, আপনি রেডিসে জেসন ডাটা সংরক্ষণ করলে, আপনি একটি নতুন ডাটা টাইপ সংরক্ষণ করছেন, তাই আপনাকে এটিকে ম্যানিপুলেট করতে জেসন-স্পেসিফিক কমান্ড ব্যবহার করতে হবে। এখানে কিছু উদাহরণ:
### জেসন সংরক্ষণ এবং পুনরুদ্ধার import redis r = redis.Redis() myDoc = {'hello', 'world', 'colours': ['red', 'blue', 'green'], 'hmm': {'hello': 'again'}} r.json().set('colors', '$', myDoc) r.json().get('colors')
উপরোক্ত myDoc-এর মত ডকুমেন্টের কথা কি? আপনি কি জানতেন যে আপনি ডকুমেন্টের একটি অংশ কোয়ারী করে একাধিক কী ফেচ করতে পারেন?
### জেসন ডকুমেন্ট থেকে "hello" নামে সকল কী ফেচ করা r.json().get('colors', '$..hello')
আপনি এমনকি রেডিসজেason এবং রেডিসার্চকে ডকুমেন্ট ক্ষমতার জন্য কম্বাইন করতে পারেন বা আপনার কাস্টম রেডিস মডিউল সাপোর্ট যোগ করতে পারেন। এটা সব redis-py 4.0-এ আছে।
redis-py দিয়ে রেডিস ক্লাস্টার সাপোর্ট
আপনি কি জানতেন যে redis-py 4.1.0 রেডিস-ক্লাস্টার সাপোর্টও ইন্টিগ্রেট করে, দুটি সহজ কানেকশন পদ্ধতির সাথে? স্ট্যান্ডঅ্যালোন রেডিস নোডের সাথে ইন্টারঅ্যাক্ট করার মতো একই চমৎকার অভিজ্ঞতা এখন redis-py-এর অংশ।
### ক্লাস্টারের সাথে সংযোগ from redis.cluster import RedisCluster r = RedisCluster.from_url('redis://4.5.6.8:6379') nodes = r.get_nodes()
হয়তো আপনি আপনার ক্লাস্টারের সাথে SSL-এর মাধ্যমে সংযোগ করতে চান বা ক্লাস-ইনিট ভিত্তিক পদ্ধতি পছন্দ করেন, এবং নির্দিষ্ট নোড টার্গেট করে কমান্ড চালাতে চান। redis-py 4.1.0 এই সিনেরিওগুলোর সাপোর্ট করে!
### ক্লাস্টারের সাথে সংযোগ ২ from redis.cluster import RedisCluster r = RedisCluster('4.5.6.8', port=6379, ssl=True) r.ping(target_nodes='all')
এরপর কী?
কাজ কখনো শেষ নয় এবং আমরা পূর্ণ বেগে এগিয়ে যাচ্ছি! আমরা আরও মডিউলগুলির জন্য সাপোর্ট যোগ করব, যেমন রেডিসএআই, একই ফার্স্ট-ক্লাস অভিজ্ঞতার সাথে। আমরা রেডিস ৭-এ রিলিজ হবacak রেসপ৩ ফাংশনগুলির সাপোর্ট যোগ করব, এবং কোড বেস গতিবর্ধন করব। আমরা ডেভেলপার টুলিং-ওয়ার ওপর কাজ করছি, redis-py-র সাথে কন্ট্রিবিউট এবং কাজ করা আরও ভাল করতে!