Redis là một dự án cấu trúc dữ liệu trong bộ nhớ triển khai cơ sở dữ liệu khóa-giá trị trong bộ nhớ, phân tán và sử dụng nó với một khung như Laravel để lưu trữ dữ liệu hầu hết sẽ được đọc và sẽ không thay đổi nhiều lần có thể tăng đáng kể tốc độ Show Trong hướng dẫn này, bạn sẽ được học
Yêu cầu Với mục đích của hướng dẫn này, bạn phải có
Trước bất cứ điều gì, bạn cần cài đặt ứng dụng khách Redis trên máy của mình nếu chưa có nó. Cách được đề xuất nhiều nhất là biên dịch trực tiếp từ nguồn, để thực hiện việc này, hãy chạy các lệnh sau theo thứ tự này trên thiết bị đầu cuối của bạn wget http://download.redis.io/redis-stable.tar.gz Cuối cùng, làm điều này cp src/redis-cli /usr/local/bin/ Xem mọi thứ có hoạt động tốt không bằng cách chạy lệnh này từ thiết bị đầu cuối của bạn redis-cli Nếu mọi thứ hoạt động tốt, bạn sẽ được đưa vào giao diện dòng lệnh Redis Cài đặt PHP RedisCó hai tùy chọn để cài đặt Redis với Laravel, cách dễ nhất và phương pháp đầu tiên là sử dụng trình soạn thảo để cài đặt gói predis/predis qua Trình soạn thảo composer require predis/predis Như tại Laravel 7. x gói này đã bị tác giả ban đầu của nó bỏ rơi và Laravel đang xem xét loại bỏ nó trong một bản phát hành trong tương lai Tùy chọn hai là tùy chọn được khuyên dùng nhiều nhất nhưng tẻ nhạt hơn là cài đặt tiện ích mở rộng PHPRedis cung cấp API để giao tiếp với máy chủ Redis. Không giống như gói soạn thảo predis, nó đáng tin cậy và nhanh hơn và có thể được sử dụng trong các ứng dụng lớn hơn Chúng tôi sẽ cài đặt tiện ích mở rộng PHPRedis bằng PECL. Dành cho những ai chưa biết, PECL là kho lưu trữ PHP Extensions Cài đặt trên Ubuntusudo apt-get -y install gcc make autoconf libc-dev pkg-config Ghi chú. Thay thế redis-cli 6 bằng bất kể phiên bản PHP của bạn là gì, bạn có thể kiểm tra bằng cách chạy redis-cli 7 từ thiết bị đầu cuối của mình, vì vậy nếu phiên bản PHP của bạn là 7. 2 lệnh của bạn sẽ là redis-cli 8Khi tiện ích mở rộng được cài đặt thành công, hãy tạo tệp cấu hình để tiện ích mở rộng Redis được tải, sau đó khởi động lại PHP bằng cách chạy lệnh sau ________số 8Cài đặt trên macOSChạy pecl install redis Lệnh trên có thể dẫn đến lỗi và không cài đặt hoàn toàn tiện ích mở rộng, nếu đúng như vậy, hãy chạy lệnh bên dưới, trong đó 7. x. x là phiên bản PHP của bạn, bạn có thể chạy redis-cli 9 để liệt kê tất cả các tệp trong thư mục đó và biết đường dẫn chính xác đến tệp pecl cần xóacp src/redis-cli /usr/local/bin/1 Bây giờ chỉnh sửa php của bạn. ini, phiên bản đã tải. Để tìm ra cái nào được tải. ini, tạo một phpinfo. php và chèn composer require predis/predis 0. Kiểm tra đầu ra cho phiên bản đã tải, sau đó chỉnh sửa và xóa dòng bên dướicp src/redis-cli /usr/local/bin/3 Lưu và thoát khỏi php. tập tin ini Cuối cùng, tạo composer require predis/predis 1 chỉnh sửa nó bằng vim hoặc nano, nơi bạn sẽ thay thế 7. X bằng phiên bản PHP của riêng bạncp src/redis-cli /usr/local/bin/5 Sau đó dán nội dung bên dưới vào tệp mới này cp src/redis-cli /usr/local/bin/0 Khởi động lại php-fpm hoặc nếu bạn đang sử dụng Laravel valet run composer require predis/predis 2Loại dữ liệu RedisRedis có các kiểu dữ liệu khác nhau là String, Lists, Sets, Sorted Sets, Hashes & Bitmaps và Hyperlogs. Chúng tôi sẽ thảo luận về tất cả các loại Dữ liệu có sẵn ngoại trừ loại cuối cùng Với mục đích của hướng dẫn này, chúng tôi sẽ thử tất cả các ví dụ về kiểu dữ liệu từ giao diện dòng lệnh Redis. Vì vậy, hãy mở một thiết bị đầu cuối mới và chạy lệnh redis-cli Sợi dâyĐây là kiểu dữ liệu cơ bản nhất có sẵn. Chuỗi Redis là an toàn nhị phân, điều này có nghĩa là chuỗi Redis có thể chứa bất kỳ loại dữ liệu nào, chẳng hạn như hình ảnh JPEG hoặc đối tượng được tuần tự hóa Hãy để chúng tôi thử một ví dụ từ dòng lệnh Redis cp src/redis-cli /usr/local/bin/2 danh sáchNó là một danh sách các chuỗi, được sắp xếp theo thứ tự chèn, trong đó các Mục có thể được thêm vào đầu hoặc cuối danh sách. Laravel sử dụng loại dữ liệu này để lưu trữ các công việc trong hàng đợi, sau đó được thực hiện theo thứ tự chúng được thêm vào danh sách cp src/redis-cli /usr/local/bin/3 bộBộ là một tập hợp các Chuỗi không có thứ tự. Có thể thêm, xóa và kiểm tra sự tồn tại của các phần tử trong một tập hợp. Chúng không cho phép các mục lặp lại và khi truy xuất các mục, chúng không được trả lại theo cùng thứ tự mà chúng được nhập, không giống như danh sách Và giống như một tập hợp, bạn có thể thực hiện các hành động giữa hai hoặc nhiều tập hợp, chẳng hạn như tìm giao điểm hoặc giao điểm cp src/redis-cli /usr/local/bin/4 BămRedis Hashes là ánh xạ giữa các trường chuỗi và giá trị chuỗi, vì vậy chúng là kiểu dữ liệu hoàn hảo để biểu diễn các đối tượng. Trong một cuộc trò chuyện giữa hai người dùng, mỗi tin nhắn được gửi đi và thông tin chi tiết về nó có thể được biểu diễn dưới dạng hashmap cp src/redis-cli /usr/local/bin/5 Bộ được sắp xếpCác tập hợp được sắp xếp tương tự như các tập hợp ngoại trừ mỗi thành viên của Tập hợp được sắp xếp được liên kết với một điểm số, được sử dụng để sắp xếp tập hợp được sắp xếp theo thứ tự, từ điểm số nhỏ nhất đến điểm số lớn nhất Hãy tưởng tượng một tập hợp các tin nhắn người dùng được sắp xếp cho lịch sử trò chuyện giữa hai người dùng. Bằng cách này, chúng tôi có thể chắc chắn khi truy xuất thư để hiển thị rằng chúng được trả về theo thứ tự dấu thời gian mà chúng được lưu trữ trong đó dấu thời gian đóng vai trò là điểm số cp src/redis-cli /usr/local/bin/6 Hầu như tất cả các hành động có thể được thực hiện trên một tập hợp đều có thể được thực hiện cho một tập hợp đã sắp xếp Để tìm hiểu thêm về bộ dữ liệu Redis, hãy truy cập tài liệu chính thức Ứng dụng thương mại điện tử sử dụng Laravel và RedisTại thời điểm này, tôi hy vọng bạn đã cài đặt một dự án laravel mới trong webroot của mình. Tiếp theo thiết lập khung xác thực và truy cập ứng dụng của bạn trong trình duyệt Nếu bạn chưa làm như vậy, hãy chạy các lệnh sau cp src/redis-cli /usr/local/bin/7 Tạo cơ sở dữ liệu mới Mysql composer require predis/predis 3cp src/redis-cli /usr/local/bin/8 Mở dự án Laravel thương mại điện tử trong trình soạn thảo PHP của bạn, tôi sử dụng PHPStorm, sau đó chỉnh sửa cấu hình dự án composer require predis/predis 4 của bạn để khớp với chi tiết cơ sở dữ liệucp src/redis-cli /usr/local/bin/9 Sau đó chạy composer require predis/predis 5 để tạo bảng đặt lại mật khẩu và người dùng trong cơ sở dữ liệu thương mại điện tửlược đồ cơ sở dữ liệuĐể giúp bạn hiểu rõ hơn về cách Redis đóng vai trò trong việc lưu trữ dữ liệu của chúng ta, dưới đây là bản phác thảo lược đồ cơ sở dữ liệu. Tôi biết bạn đang nghĩ đây không phải là cơ sở dữ liệu NoSQL, lược đồ ở đâu ra đây Thư giãn một “lược đồ” chỉ đơn giản đề cập đến việc tổ chức dữ liệu như một kế hoạch chi tiết về cách cơ sở dữ liệu được xây dựng Từ đây mọi việc trở nên dễ dàng hơn, giờ đây chúng ta đã biết rõ hơn về cách dữ liệu của mình nên được biểu diễn trong Redis Thêm sản phẩmThêm các dòng sau vào tệp tuyến đường của bạn composer require predis/predis 6redis-cli 0Tạo một tệp mới composer require predis/predis 7 sẽ mang biểu mẫu sản phẩm mới của chúng tôi, dán nội dung bên dướiredis-cli 1Tiếp theo, tạo một tệp mới composer require predis/predis 8 để hiển thị tất cả các sản phẩm đã thêmredis-cli 2Cuối cùng, cập nhật ProductController của bạn để khớp với mã bên dưới, đừng choáng ngợp, với tất cả các phương thức trong bộ điều khiển này, tôi sẽ giải thích từng chút cho bạn ngay sau đây redis-cli 3Bây giờ nếu bạn truy cập trình duyệt của mình composer require predis/predis 9, bạn sẽ thấy một biểu mẫu để tạo một sản phẩm mớiĐể giúp bạn dễ dàng hơn, bên dưới là danh sách 6 sản phẩm có hình ảnh được lưu trữ trên bộ chứa s3 và các thẻ để giúp bạn bắt đầu. Chúng tôi đang sử dụng một URL hình ảnh thay vì tải lên hình ảnh của chính chúng tôi vì điều đó sẽ phù hợp với mục đích hướng dẫn của anh ấy Sau khi thêm tất cả các sản phẩm tùy thuộc vào thứ tự, bạn sẽ nhận được một cái gì đó giống như ảnh chụp màn hình bên dưới Lọc theo thẻChúng tôi muốn xem tất cả các sản phẩm liên quan đến thẻ khi chúng tôi nhấp vào thẻ. Để đạt được điều này, hãy thêm một phương thức mới vào ProductController redis-cli 4Cập nhật phương thức sudo apt-get -y install gcc make autoconf libc-dev pkg-config 0 để kiểm tra xem có tham số URL thẻ khôngredis-cli 5Như bạn có thể thấy, có rất nhiều khả năng có thể thực hiện với Redis dưới dạng cơ sở dữ liệu. Như một nhiệm vụ ít nhiều là một thử thách, tôi sẽ để bạn hiển thị một sản phẩm và bên dưới nó hiển thị các sản phẩm tương tự bên dưới nó Dấu. Các sản phẩm tương tự có cùng thẻ với sản phẩm đang hiển thị Ban đầu được xuất bản trên https. //www. oluwafemialofe. com/posts/using-redis-with-laravel-framework Xem phiên bản video của khóa học này Tôi sẽ sớm cập nhật khóa học này để hướng dẫn cách sử dụng Laravel Websocket với hàng đợi Redis để hiển thị cập nhật trực tiếp cho người dùng mà không cần phải làm mới trang Hàng đợi Redis hoạt động như thế nào trong laravel?Xử lý hàng đợi tin nhắn trong Laravel
. Để xử lý hàng đợi, bạn cần có công nhân chạy không ngừng. you're pushing a task (or “dispatching a job”, as it's called in the Laravel ecosystem) to the Redis queue where it waits until being picked and processed. To process queues, you need to have workers that run non-stop.
Redisphp là gì?Redis là kho lưu trữ khóa-giá trị nâng cao, mã nguồn mở . Nó thường được gọi là máy chủ cấu trúc dữ liệu vì các khóa có thể chứa chuỗi, giá trị băm, danh sách, bộ và bộ được sắp xếp. Trước khi sử dụng Redis với Laravel, chúng tôi khuyến khích bạn cài đặt và sử dụng tiện ích mở rộng phpredis PHP thông qua PECL. |