Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách thực hiện thao tác CRUD trên một giá trị danh sách bằng cách sử dụng thư viện Jedis.
Thư viện Jedis
Jedis là một thư viện máy khách Java cho kho dữ liệu redis. Nó nhỏ và rất dễ sử dụng, và hoàn toàn tương thích với kho dữ liệu redis 2.8.x, 3.x.x trở lên. Bạn có thể tìm thêm thông tin về thư viện jedis tại đây.
Giá trị danh sách
Danh sách là một chuỗi các chuỗi được sắp xếp theo thứ tự chèn. Trong Redis, danh sách có thể được lưu trữ dưới dạng giá trị và các lệnh redis khác nhau có thể được sử dụng để lưu trữ, quản lý và truy xuất giá trị danh sách được lưu trữ trong cơ sở dữ liệu redis. Bạn có thể tìm thấy ở đây thêm thông tin về các lệnh Danh sách.
Thiết lập dự án
Tạo một dự án maven đơn giản trong IDE yêu thích của bạn và thêm phần phụ thuộc được đề cập bên dưới vào pom.xml của bạn tệp.
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1</version> </dependency>
Để biết phiên bản mới nhất của thư viện jedis, hãy xem trang này.
Cài đặt Redis
Bạn sẽ cần cài đặt phiên bản Redis mới nhất. Kiểm tra trang này để biết thêm thông tin về cài đặt redis.
Kết nối Jedis
Tạo một đối tượng của Jedis ( redis.clients.jedis.Jedis ) để kết nối mã java của bạn với redis.
Jedis jedis = new Jedis();
Nếu bạn đã bắt đầu một dịch vụ redis trong máy cục bộ của mình và trên cổng mặc định (6379) thì hàm tạo mặc định sẽ hoạt động tốt. Nếu không, bạn phải chuyển đúng url máy chủ và số cổng. như một đối số trong hàm tạo.
Tạo &Thêm
Thư viện Jedis cung cấp một số phương pháp để tạo và chèn các phần tử vào một giá trị danh sách. Một số phương pháp quan trọng như sau:-
- lpush:- Nó chèn một hoặc nhiều phần tử vào đầu giá trị danh sách. Nếu giá trị danh sách không tồn tại, thì trước tiên nó tạo một khóa giữ giá trị danh sách trống trước khi thực hiện thao tác chèn.
/* Creating a new list and inserting string values a, b, c at head */ jedis.lpush("list-1", "a", "b", "c"); /* Creating a new list and inserting byte array of string value 1, 2 at head */ jedis.lpush("list-2".getBytes(),new BigInteger("1").toByteArray(),new BigInteger("2").toByteArray());
- rpush:- Nó chèn một hoặc nhiều phần tử vào đuôi của giá trị danh sách. Nếu giá trị danh sách không tồn tại, thì trước tiên nó tạo một khóa giữ giá trị danh sách trống trước khi thực hiện thao tác chèn.
/* Creating a new list and inserting string values a, b, c at tail */ jedis.rpush("list-3", "a", "b", "c"); /* Creating a new list and inserting byte array of string value 1, 2 at tail */ jedis.rpush("list-4".getBytes(),new BigIntege r("1").toByteArray(),new BigInteger("2").toByteArray());
- lpushx:- Nó chỉ chèn một hoặc nhiều phần tử vào đầu giá trị danh sách nếu giá trị danh sách đã tồn tại.
/* Inserting string values d, e at head of the list <list-1> */ jedis.lpushx("list-1", "d", "e"); /* Inserting string values 3, 4 at head of the list <list-2> */ jedis.lpushx("list-2".getBytes(),new BigInteger("3").toByteArray(),new BigInteger("4").toByteArray());
- rpushx:- Nó chỉ chèn một hoặc nhiều phần tử vào đuôi của giá trị danh sách nếu giá trị danh sách đã tồn tại.
/* Inserting string values d, e at tail of the list <list-3> */ jedis.rpush("list-3", "d", "e"); /* Inserting string values 3, 4 at tail of the list <list-4> */ jedis.rpush("list-4".getBytes(),new BigInteger("3").toByteArray(),new BigInteger("4").toByteArray());
Xóa và trả lại
Có hai phương pháp để thực hiện ngăn xếp như hoạt động pop trên một giá trị danh sách. Chúng như sau:-
- lpop:- Nó loại bỏ và trả về phần tử đầu tiên của giá trị danh sách.
/* Removes and return single element from the head of <list-1> */ jedis.lpop("list-1"); /* Removes and return single element from the head of <list-2> */ jedis.lpop("list-2".getBytes());
- rpop:- Nó loại bỏ và trả về phần tử cuối cùng của giá trị danh sách.
/* Removes and return single element from the tail of <list-3> */ jedis.rpop("list-3"); /* Removes and return single element from the tail of <list-4> */ jedis.rpop("list-4".getBytes());
Chiều dài
llen được sử dụng để lấy độ dài của giá trị danh sách được lưu trữ tại một khóa. Ví dụ về mã:-
/* Returns size of <list-1> */ jedis.llen("list-1"); /* Returns size of <list-2> */ jedis.llen("list-2".getBytes());
Xóa
lrem được sử dụng để xóa tất cả các lần xuất hiện của một phần tử khỏi giá trị danh sách.
/* Remove one occurrence of element a from <list-1> */ jedis.lrem("list-1", 1, "a"); /* Remove two occurrence of element 1 from <list-2> */ jedis.lrem("list-2".getBytes(), 2, "1".getBytes());
Lấy theo chỉ mục
lindex được sử dụng để lấy một phần tử bằng đối số chỉ mục của nó.
/* Get an element at index 3 from <list-1> */ jedis.lindex("list-1", 3); /* Get an element at index 2 from <list-2> */ jedis.lindex("list-2".getBytes(), 2);
Cập nhật theo chỉ mục
lset được sử dụng để cập nhật một phần tử bằng đối số chỉ mục của nó.
/* Set an element g at index 3 from <list-1> */ jedis.lset("list-1", 3, "g"); /* Set an element 6 at index 2 from <list-2> */ jedis.lset("list-2".getBytes(), 2, "6".getBytes());
Nhận nhiều phần tử
lrange được sử dụng để lấy một hoặc các phần tử từ giá trị danh sách, được xác định bởi đối số bù đắp.
/* Returns elements from index 1 to 5 from <list-1> */ jedis.lrange("list-1", 1, 5); /* Returns all elements from <list-2> */ jedis.lrange("list-2".getBytes(), 0, -1);
Tài liệu tham khảo:-
- Liệt kê các Tài liệu Lệnh
Đó là tất cả về cách thực hiện thao tác CRUD trên một giá trị danh sách bằng cách sử dụng thư viện Jedis. Nếu bạn thích nó, hãy chia sẻ suy nghĩ của bạn trong phần bình luận và chia sẻ nó với những người khác.