Computer >> Máy Tính >  >> Lập trình >> Redis

Redis Jedis - Cách thực hiện các hoạt động CRUD trên giá trị băm bằng cách sử dụng thư viện jedis

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ị băm 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ị băm

Hash là một bản đồ của cặp trường-giá trị, có thể được sử dụng để biểu diễn loại đối tượng như đối tượng java. Trong Redis, băm có thể được lưu trữ dưới dạng giá trị và các lệnh redis khác nhau được sử dụng để lưu trữ, quản lý và truy xuất giá trị băm được lưu trữ trong cơ sở dữ liệu redis. Bạn có thể tìm thêm thông tin về các lệnh Hash ở đây.

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.

   redis.clients   jedis   3.0.1   

Để 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 &Đặt Giá trị của Trường

Có ba phương pháp để đặt một giá trị được liên kết với trường chứa bên trong giá trị băm. Chúng như sau:-

  1. hset:- Nó đặt giá trị được chỉ định cho trường tương ứng của nó trong giá trị băm. Nếu trường đã tồn tại, thì giá trị của trường đó sẽ bị ghi đè. Nếu khóa không tồn tại, thì khóa mới chứa giá trị băm sẽ được tạo trước khi thực hiện thao tác đặt.
     / * Chèn trường tên trong  * / jedis.hset ("hash-1", "name ", "John"); / * Chèn trường tên trong  * / jedis.hset ("hash-2" .getBytes (), "name" .getBytes (), "john" .getBytes ()); 
  2. hsetnx:- Nó đặt giá trị được chỉ định cho trường tương ứng của nó trong giá trị băm, chỉ khi trường không tồn tại. Nếu trường đã tồn tại, thì thao tác này không có hiệu lực. Nếu khóa không tồn tại, thì khóa mới chứa giá trị băm sẽ được tạo trước khi thực hiện thao tác đặt.
     / * Chèn trường tên trong  * / jedis.hsetnx ("hash-1", "name ", "John"); / * Chèn trường tên trong  * / jedis.hsetnx ("hash-2" .getBytes (), "age" .getBytes (), "23" .getBytes ()); 
  3. hmset:- Nó đặt các giá trị được chỉ định cho các trường tương ứng của chúng (nhiều trường / cặp giá trị) trong giá trị băm. Nếu đã tồn tại bất kỳ trường nào được chỉ định thì giá trị của trường đó sẽ bị ghi đè. Nếu khóa không tồn tại, thì khóa mới chứa giá trị băm sẽ được tạo trước khi thực hiện thao tác đặt.
     / * Chèn trường tên và tuổi vào  * / Map  map =new HashMap  (); map.put ("name", "john"); map.put ("age", "23"); jedis.hmset ("hash-1", map); 

Nhận giá trị của trường

Có hai phương pháp để nhận một giá trị được liên kết với trường chứa bên trong giá trị băm. Chúng như sau:-

  1. hget:- Nó trả về giá trị được liên kết với một trường duy nhất chứa bên trong giá trị băm.
     / * Lấy giá trị của trường tên trong  * / jedis.hget ("hash-1", "name");  
  2. hmget:- Nó trả về giá trị được liên kết với một hoặc nhiều trường chứa bên trong giá trị băm.
     / * Lấy giá trị của trường tên và tuổi trong  * / jedis.hmget ("hash-1", "name", "tuổi"); 

Kích thước

hlen được sử dụng để lấy số lượng trường có trong giá trị băm được lưu trữ tại một khóa.

 / * Trả về số trường trong  * / jedis.hlen ("hash-1"); 

Xóa

hdel được sử dụng để xóa một hoặc nhiều trường khỏi giá trị băm được lưu trữ trong một khóa.

 / * Xóa trường tên và tuổi khỏi  * / jedis.hdel ("hash-1", "name", "age"); / * Xóa trường tên và tuổi khỏi  * / jedis.hdel ("hash-2" .getBytes (), "name" .getBytes (), "age" .getBytes ()); 

Kiểm tra sự tồn tại của trường

hexists được sử dụng để kiểm tra xem trường được chỉ định có phải là thành viên của hàm băm hay không.

 / * Kiểm tra xem tên có phải là thành viên của  hay không * / jedis.hexists ("hash-1", "name"); / * Kiểm tra xem tên có phải là thành viên của  không hoặc không * / jedis.hexists ("hash-2" .getBytes (), "name" .getBytes ()); 

Nhận tất cả

hgetall phương thức được sử dụng để lấy tất cả các trường và các giá trị liên quan của nó có trong giá trị băm được lưu trữ tại một khóa.

 / * Trả về tất cả các trường và giá trị của nó từ  * / jedis.hgetAll ("hash-1"); / * Trả về tất cả các trường và giá trị của nó từ  * / jedis.hgetAll ( "hash-2" .getBytes ()); 

Nhận tất cả chìa khóa

hkeys được sử dụng để lấy tên của tất cả các trường có trong giá trị băm được lưu trữ tại một khóa.

 / * Trả về tất cả các tên trường từ  * / jedis.hkeys ("hash-1"); / * Trả về tất cả các tên trường từ  * / jedis.hkeys ("hash-2 ".getBytes ()); 

Nhận tất cả giá trị

khoảng thời gian được sử dụng để lấy tất cả các giá trị của trường có trong giá trị băm được lưu trữ tại một khóa.

 / * Trả về tất cả các giá trị từ  * / jedis.hvals ("hash-1"); / * Trả về tất cả các giá trị từ  * / jedis.hvals ("hash-2". getBytes ()); 

Tài liệu tham khảo:-

  1. Tài liệu lệnh băm

Đó là tất cả về cách thực hiện thao tác CRUD trên giá trị băm bằ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.