Python kết nối với cơ sở dữ liệu redis như thế nào?
Redis là kho lưu trữ dữ liệu khóa-giá trị trong bộ nhớ phổ biến, là một loại cơ sở dữ liệu NoSQL. Redis chủ yếu được sử dụng làm cơ sở dữ liệu bộ đệm, nhưng ứng dụng của nó không kết thúc ở đó. Bạn có thể tìm thấy nhiều bài viết giải thích cách Redis có thể trở thành cơ sở dữ liệu tất cả trong một cho tất cả các loại ứng dụng. Trong bài viết này, chúng ta sẽ hiểu cách kết nối và sử dụng Redis trong python Show Cài đặt Redis trên WindowsRedis không được hỗ trợ chính thức trên Windows. Tuy nhiên, bạn có thể cài đặt Redis bằng cách thiết lập Windows Subsystem cho Linux 2 và cấu hình nó. Ngoài ra, bạn có thể chạy Redis trên một container bằng Docker mà tôi sẽ trình bày trong bài viết này. Bước đầu tiên là cài đặt Docker trên máy Windows của bạn. Bạn có thể tải xuống Docker Desktop từ đây. Quá trình cài đặt khá đơn giản và trực tiếp. Bây giờ chúng ta đã có Docker trên máy của mình, hãy nhập lệnh sau trên dấu nhắc lệnh để tìm nạp hình ảnh Redis từ Docker Hub, có thể được sử dụng để xây dựng và chạy vùng chứa docker pull redis Khi điều này được thực hiện, bước thứ ba là bắt đầu vùng chứa bằng hình ảnh Redis mà chúng tôi đã tải xuống trước đó Tại đây, nhấp vào nút 'CHẠY' Xin vui lòng tham khảo hình ảnh dưới đây để tham khảo Xin chúc mừng, bạn đã khởi động thành công máy chủ Redis trên máy của mình Cài đặt Redis-pyĐể kết nối và sử dụng Redis trong python, chúng tôi sẽ sử dụng mô-đun python có tên là redis-py. Nó có thể được cài đặt bằng cách chạy lệnh sau trong dấu nhắc lệnh pip install redis Bây giờ chúng ta đã sẵn sàng mọi thứ, hãy bắt tay vào phần lập trình Sử dụng Redis-pyTrước khi thực hiện bất kỳ hoạt động CRUD nào, trước tiên chúng ta cần kết nối với máy chủ Redis, điều này rất trực tiếp trong redis-py. Chúng ta cần đặt tham số decode_responses là true để không nhận được phản hồi ở định dạng byte import redis r = redis.Redis(decode_responses=True) r.ping() True Bây giờ chúng ta đã kết nối với máy chủ Redis, hãy bắt đầu thực hiện các thao tác CRUD đơn giản Để đặt một cặp khóa-giá trị, chúng tôi sử dụng chức năng “đặt” chấp nhận khóa và giá trị làm tham số. Xin lưu ý rằng khóa phải luôn là kiểu dữ liệu chuỗi hoặc byte r.set('hello', 'world') Để lấy giá trị cho một khóa cụ thể, chúng tôi sử dụng hàm “get” chấp nhận khóa mà chúng tôi muốn giá trị được trả về r.get('hello') world Để đặt nhiều cặp khóa-giá trị, chúng tôi sử dụng hàm “mset” viết tắt của multiple-set và chấp nhận nhiều cặp khóa-giá trị làm tham số data = { 'hello': 'world', 'lorem': 'ipsum' } r.mset(data) r.get('lorem') ipsum Để đặt một cặp khóa-giá trị trong đó giá trị thuộc loại dữ liệu đã đặt, chúng tôi sử dụng hàm “sadd”. Kiểu dữ liệu tập hợp chỉ chứa các phần tử duy nhất, không giống như kiểu dữ liệu danh sách. Bây giờ chúng ta hãy lưu trữ một tập hợp các loại trái cây mà không lặp lại các loại trái cây fruits = ["avocado", "strawberry", "strawberry", "mango", "orange"] r.sadd('fruits', *fruits) Để lấy tất cả các giá trị của trái cây mà chúng ta vừa lưu trữ, chúng ta có thể sử dụng hàm “smembers” pip install redis0 Vì chúng ta đã thấy cách lưu trữ các giá trị kiểu dữ liệu đã đặt trong Redis, bây giờ chúng ta hãy tìm hiểu cách lưu trữ kiểu dữ liệu danh sách. Nó có thể được thực hiện bằng chức năng “lpush”. Hãy để chúng tôi lưu trữ một danh sách các ngôn ngữ lập trình sử dụng chức năng này pip install redis1 Để lấy tất cả các phần tử trong danh sách, chúng ta sử dụng hàm “lrange” giúp duyệt qua các phần tử trong danh sách. “-1” biểu thị rằng hàm dự kiến sẽ trả về tất cả các phần tử, nhưng nếu bạn chỉ muốn trả về 3 phần tử đầu tiên của danh sách, bạn có thể làm như vậy bằng cách thay thế “-1” bằng “2”. Lưu ý rằng nó không phải là "3" vì nó sẽ đi qua cho đến khi chỉ mục là ba và trả về tổng cộng bốn phần tử pip install redis2____13 Bây giờ, chúng ta hãy thử lưu một đối tượng lồng nhau trong Redis. Để lưu trữ các đối tượng lồng nhau, chúng ta có thể sử dụng hàm “hset” nhưng nó chỉ cho phép một cấp độ lồng nhau pip install redis4 Nếu bạn muốn lưu trữ các đối tượng được lồng sâu với các loại dữ liệu khác nhau, có thể sử dụng các kỹ thuật tuần tự hóa như sử dụng json hoặc pickle. Hãy xem thực tế này để hiểu rõ hơn pip install redis5 Để trích xuất thông tin được lưu trữ, chúng ta có thể trực tiếp sử dụng hàm “get” và sau đó hoàn tác quá trình xâu chuỗi được thực hiện bởi json pip install redis6 pip install redis7 Vì đây là kho lưu trữ dữ liệu trong bộ nhớ nên điều quan trọng là các cặp khóa-giá trị cũ sẽ bị xóa hoặc đúng hơn là hết hạn để nhường chỗ cho việc lưu trữ dữ liệu mới. Đối với điều này, Redis có sẵn tùy chọn hết hạn chính. Bây giờ chúng ta hãy thử lưu trữ một cặp khóa-giá trị với thời gian hết hạn. Chúng ta có thể sử dụng chức năng “setex” để đặt thời hạn sử dụng cho một cặp khóa-giá trị. Nó chấp nhận TTL trong vài giây. Nếu bạn muốn đặt TTL theo mili giây, bạn có thể sử dụng chức năng “psetex” pip install redis8 Để biết thời gian còn lại của một khóa là bao nhiêu, chúng ta có thể sử dụng hàm “ttl”, hàm này sẽ trả về thời gian còn lại tính bằng giây. Tương tự, hàm “pttl” sẽ trả về kết quả tương tự nhưng tính bằng mili giây. Nếu khóa đã hết hạn, giá trị trả về sẽ là số âm pip install redis9 import redis r = redis.Redis(decode_responses=True) r.ping()0 Giả sử chúng ta muốn kiểm tra xem một khóa đã hết hạn hay chưa, chúng ta có thể sử dụng hàm “exists” sẽ trả về 1 nếu còn và 0 nếu đã hết hạn import redis r = redis.Redis(decode_responses=True) r.ping()1 import redis r = redis.Redis(decode_responses=True) r.ping()2 Để xóa một cặp key-value trong Redis, chúng ta có thể sử dụng chức năng “delete”. Nó chấp nhận chìa khóa mà bạn muốn xóa import redis r = redis.Redis(decode_responses=True) r.ping()3 Sự kết luậnTrong bài viết này, chúng tôi đã thảo luận và đề cập đến những điều sau đây
Các chức năng được thảo luận trong bài viết này là cần thiết để hiểu và thực hiện các hoạt động CRUD cơ bản trong Redis, nhưng có rất nhiều chức năng khác nhau có sẵn. Để tìm hiểu thêm về các chức năng này, hãy tham khảo tài liệu chính thức của Redis. Trang web chính thức có một trang riêng bao gồm tất cả các lệnh có sẵn trong Redis. Bạn có thể truy cập trang đó bằng cách nhấp vào liên kết này. Như đã đề cập trước đó, Redis có thể là cơ sở dữ liệu tất cả trong một với sự ra đời của Ngăn xếp. Nếu quan tâm, bạn có thể tìm hiểu thêm về Stack tại đây. Tôi sẽ cố gắng trình bày về Redis Stack trong một bài viết khác Đó là nó cho bài viết này. Hy vọng bạn thích đọc bài viết này và học được điều gì đó mới. Cảm ơn đã đọc và học tập vui vẻ Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả Làm cách nào để kết nối với cơ sở dữ liệu Redis bằng python?Cách sử dụng Redis với Python . Cài đặt Redis từ nguồn Định cấu hình Redis Mười phút hoặc hơn để Redis. Bắt đầu. Redis như một từ điển Python. . Sử dụng redis-py. Redis trong Python. Những bước đầu tiên. Các loại khóa được phép. . Sử dụng Hiredis Sử dụng ứng dụng Redis doanh nghiệp kết thúc Đọc thêm Làm cách nào để kết nối với cụm Redis từ python?Sử dụng Python
. Biết thêm về redis-py-cluster tại đây. Tất cả những gì chúng ta cần làm bây giờ là nhập RedisCLuster và xác định một số cấu hình. Biến rc bây giờ sẽ có khả năng thực hiện tất cả các hoạt động redis như tồn tại(), hết hạn(), v.v. use redis-py-cluster. Know more about redis-py-cluster here. All we need to do now is import RedisCLuster and define some configuration. Variable rc will now be capable to do all redis operations like exists() , expire() etc.
Làm cách nào để lấy giá trị từ Redis trong python?Để lấy giá trị được lưu trữ trong một khóa, bạn có thể sử dụng lệnh GET theo sau là tên của khóa . Lệnh trên yêu cầu Redis tìm nạp giá trị được lưu trữ trong khóa đã chỉ định. Chúng ta có thể sử dụng lệnh GET theo sau là giá trị duy nhất như. NHẬN tên người dùng. 3.
Làm cách nào để đặt giá trị trong Redis trong python?Đang kết nối với Redis . nhập redis. r = làm lại. Redis ( máy chủ = '172. 31. 226. 228',. nếu r. ping(). in ("PONG") khác. . # đặt cặp khóa-giá trị. r. set("mykey", "myvalue") # nhận giá trị. in (r. nhận ("mykey")) b'giá trị của tôi' # thiết lập với thời hạn sử dụng. r. setex("another-key", 60, "another-value") in (r. ttl("key khác")) # chuyển db. r. chọn(10) |