কম্পিউটার

হ্যালো redis-py, এটা এক মিনিট হয়েছে

redis-py 4.1.0 প্রকাশিত হয়েছে!

Redis-এর জন্য Python সমর্থন এক দশকেরও বেশি সময় ধরে বেড়ে চলেছে, প্রতি সপ্তাহে 1 মিলিয়নেরও বেশি ডাউনলোডে পৌঁছেছে, এবং আমরা সর্বশেষ রিলিজ, redis-py 4.1.0 ঘোষণা করতে পেরে গর্বিত!

এই রিলিজটি আমাদের প্রায় Redis 6.2-এ সম্পূর্ণ Redis কমান্ড সমর্থনের থুতু দূরত্বের মধ্যে নিয়ে আসে। আমরা বিদ্যমান কমান্ডগুলিতে অনুপস্থিত বিকল্পগুলির জন্য সমর্থন যোগ করেছি, সেন্টিনেল সংযোগগুলির জন্য SSL সমর্থন এবং সাধারণত বিকাশকারীর অভিজ্ঞতা উন্নত করেছি। এটি পাইথন 3.6 এবং এমনকি Python 3.10 সমর্থনের মতো বড় কাঠামোগত পরিবর্তনও নিয়ে আসে। আমরা আমাদের ক্লায়েন্ট ডকুমেন্টেশনকে নতুন করে সাজিয়েছি, রেডিস কমান্ড খুঁজে পাওয়া সহজ করে দিয়েছি এবং সবাইকে জড়িত হতে উৎসাহিত করছি! আরও গুরুত্বপূর্ণ, আমরা ন্যূনতম ব্যাঘাত সহ এটি করেছি, যাতে আপনি সামঞ্জস্যের সমস্যা ছাড়াই আপগ্রেড করতে পারেন।

নতুন Redis কমান্ডের জন্য সমর্থন

Redis 6.2 এটির সাথে নতুন Redis কমান্ডের একটি বিশাল ঝাঁক নিয়ে আসে এবং পাইথনের সাথে সেগুলি ব্যবহার করা এখন আগের চেয়ে সহজ। GETEX-এর সাথে একক কমান্ডে ডেটা আনা এবং এর মেয়াদ শেষ হওয়ার আপডেট করা সহজ করে তোলা থেকে শুরু করে, ক্লায়েন্টের তথ্যের সাথে ক্লায়েন্টদের সংযোগ বিচ্ছিন্ন করে আপনার Redis ইনস্ট্যান্সগুলি পরিচালনা করা এবং ক্লায়েন্ট কিল রেডিস-পি 4.1.0 আপনাকে কভার করেছে। আসুন redis-py 4.1.0-এ যোগ করা 30টিরও বেশি কমান্ডের নীচে দুটি উদাহরণ দেখি!

### 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 মডিউলগুলির জন্য প্রথম-শ্রেণীর সমর্থন নিয়ে আসে। redis-py 4.1.0 প্রকাশের সাথে, আমরা এখন RedisJSON, RediSearch, RedisTimeSeries, RedisGraph এবং RedisBloom-এর জন্য সমর্থন পেয়েছি। এটা ঠিক, আপনি রেডিসে সহজেই JSON ডেটা সঞ্চয় করতে পারেন! আপনি এটি পরিচালনা করতে পারেন - এমনকি আপনি এটি অনুসন্ধান করতে পারেন! শুধু মনে রাখবেন, আপনি যখন Redis-এ JSON ডেটা সঞ্চয় করেন, তখন আপনি একটি নতুন ডেটা টাইপ সঞ্চয় করেন, তাই এটিকে ম্যানিপুলেট করার জন্য আপনাকে JSON নির্দিষ্ট কমান্ড ব্যবহার করতে হবে। এখানে কিছু উদাহরণ আছে:

### STORING and RETRIEVING JSON
​
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-এর মত নথিগুলি সম্পর্কে কী? আপনি কি জানেন যে আপনি নথির একটি অংশ জিজ্ঞাসা করে একাধিক কী আনতে পারেন?

### FETCHING ALL KEYS NAMED “hello” from the JSON document
r.json().get('colors', '$..hello')

আপনি এমনকি নথির ক্ষমতার জন্য RedisJSON এবং RediSearch একত্রিত করতে পারেন বা আপনার কাস্টম Redis মডিউল সমর্থন যোগ করতে পারেন৷ redis-py 4.0 এ সবই আছে।

redis-py এর সাথে রেডিস ক্লাস্টার সমর্থন

আপনি কি জানেন যে redis-py 4.1.0 এছাড়াও সংযোগ করার দুটি সহজ উপায় সহ redis-ক্লাস্টার সমর্থনকে একীভূত করে? স্বতন্ত্র রেডিস নোডগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য একই দুর্দান্ত অভিজ্ঞতা এখন redis-py-এর অংশ৷

### CONNECTING TO CLUSTER
from redis.cluster import RedisCluster
r = RedisCluster.from_url('redis://4.5.6.8:6379')
nodes = r.get_nodes()

হতে পারে আপনি SSL এর মাধ্যমে আপনার ক্লাস্টারের সাথে সংযোগ করতে চান বা ক্লাস init ভিত্তিক পদ্ধতি পছন্দ করতে চান এবং নির্দিষ্ট নোডকে লক্ষ্য করে কমান্ড চালাতে চান। redis-py 4.1.0 এই পরিস্থিতিতে সমর্থন করে!

### CONNECTING TO CLUSTER 2
from redis.cluster import RedisCluster
r = RedisCluster('4.5.6.8', port=6379, ssl=True)
r.ping(target_nodes='all')

এরপর কি?

কাজটি কখনই করা হয় না এবং আমরা সম্পূর্ণ বাষ্পে এগিয়ে যাচ্ছি! আমরা একই প্রথম শ্রেণীর অভিজ্ঞতা সহ RedisAI এর মতো আরও মডিউলগুলির জন্য সমর্থন যোগ করব। আমরা RESP3 ফাংশনগুলির জন্য সমর্থন যোগ করতে যাচ্ছি যেগুলি Redis 7 এ প্রকাশিত হবে এবং কোড বেসকে গতি বাড়াতে হবে। আমরা ডেভেলপার টুলিং নিয়েও কাজ করছি, যাতে আরও ভালোভাবে redis-py-এ অবদান রাখা এবং কাজ করা যায়!


  1. প্রবর্তন করা হচ্ছে RediSearch 2.0

  2. রেডিস লঞ্চপ্যাড পেশ করা হচ্ছে

  3. Redis.io রিফ্রেশ করা এবং প্রসারিত করা

  4. ফাস্টলি কম্পিউটে রেডিস ব্যবহার করুন