Redis - Hướng dẫn nhanh

Redis là một mã nguồn mở, kho lưu trữ khóa-giá trị nâng cao và là giải pháp phù hợp để xây dựng các ứng dụng web có hiệu suất cao, có thể mở rộng.

Redis có ba đặc điểm chính khiến nó trở nên khác biệt.

  • Redis giữ cơ sở dữ liệu của nó hoàn toàn trong bộ nhớ, chỉ sử dụng đĩa để lưu trữ lâu dài.

  • Redis có một tập hợp các kiểu dữ liệu tương đối phong phú khi so sánh với nhiều kho dữ liệu khóa-giá trị.

  • Redis có thể sao chép dữ liệu tới bất kỳ số lượng nô lệ nào.

Ưu điểm của Redis

Sau đây là những lợi thế nhất định của Redis.

  • Exceptionally fast - Redis rất nhanh và có thể thực hiện khoảng 110000 SET mỗi giây, khoảng 81000 GET mỗi giây.

  • Supports rich data types- Redis nguyên bản hỗ trợ hầu hết các kiểu dữ liệu mà các nhà phát triển đã biết, chẳng hạn như danh sách, tập hợp, tập hợp được sắp xếp và băm. Điều này giúp dễ dàng giải quyết nhiều vấn đề vì chúng ta biết vấn đề nào có thể được xử lý tốt hơn bằng kiểu dữ liệu nào.

  • Operations are atomic - Tất cả các hoạt động của Redis là nguyên tử, điều này đảm bảo rằng nếu hai máy khách truy cập đồng thời, máy chủ Redis sẽ nhận được giá trị cập nhật.

  • Multi-utility tool - Redis là một công cụ đa tiện ích và có thể được sử dụng trong một số trường hợp sử dụng như bộ nhớ đệm, hàng đợi nhắn tin (Redis nguyên bản hỗ trợ Xuất bản / Đăng ký), bất kỳ dữ liệu ngắn hạn nào trong ứng dụng của bạn, chẳng hạn như phiên ứng dụng web, web số lần truy cập trang, v.v.

Redis so với các cửa hàng khóa giá trị khác

  • Redis là một con đường tiến hóa khác trong DB khóa-giá trị, nơi các giá trị có thể chứa các kiểu dữ liệu phức tạp hơn, với các phép toán nguyên tử được xác định trên các kiểu dữ liệu đó.

  • Redis là một cơ sở dữ liệu trong bộ nhớ nhưng liên tục trên cơ sở dữ liệu đĩa, do đó nó thể hiện một sự đánh đổi khác khi đạt được tốc độ ghi và đọc rất cao với giới hạn là tập dữ liệu không thể lớn hơn bộ nhớ.

  • Một ưu điểm khác của cơ sở dữ liệu trong bộ nhớ là việc biểu diễn bộ nhớ của các cấu trúc dữ liệu phức tạp được thao tác đơn giản hơn nhiều so với cùng một cấu trúc dữ liệu trên đĩa. Do đó, Redis có thể làm được nhiều việc với ít phức tạp bên trong.

Trong chương này, bạn sẽ tìm hiểu về thiết lập môi trường cho Redis.

Cài đặt Redis trên Ubuntu

Để cài đặt Redis trên Ubuntu, hãy chuyển đến terminal và nhập các lệnh sau:

$sudo apt-get update $sudo apt-get install redis-server

Thao tác này sẽ cài đặt Redis trên máy của bạn.

Khởi động Redis

$redis-server

Kiểm tra xem Redis có hoạt động không

$redis-cli

Thao tác này sẽ mở ra lời nhắc redis.

redis 127.0.0.1:6379>

Trong lời nhắc ở trên, 127.0.0.1 là địa chỉ IP máy của bạn và 6379là cổng mà máy chủ Redis đang chạy. Bây giờ gõ như sauPING chỉ huy.

redis 127.0.0.1:6379> ping 
PONG

Điều này cho thấy rằng Redis đã được cài đặt thành công trên máy của bạn.

Cài đặt Redis Desktop Manager trên Ubuntu

Để cài đặt trình quản lý máy tính để bàn Redis trên Ubuntu, chỉ cần tải xuống gói từ https://redisdesktop.com/download

Mở gói đã tải xuống và cài đặt nó.

Trình quản lý máy tính để bàn Redis sẽ cung cấp cho bạn giao diện người dùng để quản lý dữ liệu và khóa Redis của bạn.

Trong Redis, có một tệp cấu hình (redis.conf) có sẵn tại thư mục gốc của Redis. Mặc dù bạn có thể lấy và đặt tất cả các cấu hình của Redis bởi RedisCONFIG chỉ huy.

Cú pháp

Sau đây là cú pháp cơ bản của Redis CONFIG chỉ huy.

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

Thí dụ

redis 127.0.0.1:6379> CONFIG GET loglevel  
1) "loglevel" 
2) "notice"

Để nhận tất cả cài đặt cấu hình, hãy sử dụng * thay cho CONFIG_SETTING_NAME

Thí dụ

redis 127.0.0.1:6379> CONFIG GET *  
  1) "dbfilename" 
  2) "dump.rdb" 
  3) "requirepass" 
  4) "" 
  5) "masterauth" 
  6) "" 
  7) "unixsocket" 
  8) "" 
  9) "logfile" 
 10) "" 
 11) "pidfile" 
 12) "/var/run/redis.pid" 
 13) "maxmemory" 
 14) "0"
 15) "maxmemory-samples" 
 16) "3" 
 17) "timeout" 
 18) "0" 
 19) "tcp-keepalive" 
 20) "0" 
 21) "auto-aof-rewrite-percentage" 
 22) "100" 
 23) "auto-aof-rewrite-min-size" 
 24) "67108864" 
 25) "hash-max-ziplist-entries" 
 26) "512" 
 27) "hash-max-ziplist-value" 
 28) "64" 
 29) "list-max-ziplist-entries" 
 30) "512" 
 31) "list-max-ziplist-value" 
 32) "64" 
 33) "set-max-intset-entries" 
 34) "512" 
 35) "zset-max-ziplist-entries" 
 36) "128" 
 37) "zset-max-ziplist-value" 
 38) "64" 
 39) "hll-sparse-max-bytes" 
 40) "3000" 
 41) "lua-time-limit" 
 42) "5000" 
 43) "slowlog-log-slower-than" 
 44) "10000" 
 45) "latency-monitor-threshold" 
 46) "0" 
 47) "slowlog-max-len" 
 48) "128" 
 49) "port" 
 50) "6379" 
 51) "tcp-backlog" 
 52) "511" 
 53) "databases" 
 54) "16" 
 55) "repl-ping-slave-period" 
 56) "10" 
 57) "repl-timeout" 
 58) "60" 
 59) "repl-backlog-size" 
 60) "1048576" 
 61) "repl-backlog-ttl" 
 62) "3600" 
 63) "maxclients" 
 64) "4064" 
 65) "watchdog-period" 
 66) "0" 
 67) "slave-priority" 
 68) "100" 
 69) "min-slaves-to-write" 
 70) "0" 
 71) "min-slaves-max-lag" 
 72) "10" 
 73) "hz" 
 74) "10" 
 75) "no-appendfsync-on-rewrite" 
 76) "no" 
 77) "slave-serve-stale-data" 
 78) "yes" 
 79) "slave-read-only" 
 80) "yes" 
 81) "stop-writes-on-bgsave-error" 
 82) "yes" 
 83) "daemonize" 
 84) "no" 
 85) "rdbcompression" 
 86) "yes"
 87) "rdbchecksum" 
 88) "yes" 
 89) "activerehashing" 
 90) "yes" 
 91) "repl-disable-tcp-nodelay" 
 92) "no" 
 93) "aof-rewrite-incremental-fsync" 
 94) "yes" 
 95) "appendonly" 
 96) "no" 
 97) "dir" 
 98) "/home/deepak/Downloads/redis-2.8.13/src" 
 99) "maxmemory-policy" 
100) "volatile-lru" 
101) "appendfsync" 
102) "everysec" 
103) "save" 
104) "3600 1 300 100 60 10000" 
105) "loglevel" 
106) "notice" 
107) "client-output-buffer-limit" 
108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" 
109) "unixsocketperm" 
110) "0" 
111) "slaveof" 
112) "" 
113) "notify-keyspace-events" 
114) "" 
115) "bind" 
116) ""

Chỉnh sửa cấu hình

Để cập nhật cấu hình, bạn có thể chỉnh sửa redis.conf trực tiếp hoặc bạn có thể cập nhật cấu hình qua CONFIG set chỉ huy.

Cú pháp

Sau đây là cú pháp cơ bản của CONFIG SET chỉ huy.

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

Thí dụ

redis 127.0.0.1:6379> CONFIG SET loglevel "notice" 
OK 
redis 127.0.0.1:6379> CONFIG GET loglevel  
1) "loglevel" 
2) "notice"

Redis hỗ trợ 5 loại kiểu dữ liệu.

Dây

Chuỗi redis là một chuỗi các byte. Các chuỗi trong Redis là an toàn nhị phân, có nghĩa là chúng có độ dài đã biết không được xác định bởi bất kỳ ký tự kết thúc đặc biệt nào. Do đó, bạn có thể lưu trữ bất kỳ thứ gì lên đến 512 megabyte trong một chuỗi.

Thí dụ

redis 127.0.0.1:6379> SET name "tutorialspoint" 
OK 
redis 127.0.0.1:6379> GET name 
"tutorialspoint"

Trong ví dụ trên, SETGET là các lệnh của Redis, name là khóa được sử dụng trong Redis và tutorialspoint là giá trị chuỗi được lưu trữ trong Redis.

Note - Giá trị chuỗi có thể có độ dài tối đa 512 megabyte.

Băm

Hàm băm Redis là một tập hợp các cặp giá trị khóa. Redis Hashes là bản đồ giữa các trường chuỗi và giá trị chuỗi. Do đó, chúng được sử dụng để đại diện cho các đối tượng.

Thí dụ

redis 127.0.0.1:6379> HMSET user:1 username tutorialspoint password 
tutorialspoint points 200 
OK 
redis 127.0.0.1:6379> HGETALL user:1  
1) "username" 
2) "tutorialspoint" 
3) "password" 
4) "tutorialspoint" 
5) "points" 
6) "200"

Trong ví dụ trên, kiểu dữ liệu băm được sử dụng để lưu trữ đối tượng của người dùng chứa thông tin cơ bản của người dùng. ĐâyHMSET, HGETALL là các lệnh cho Redis, trong khi user − 1 là chìa khóa.

Mỗi băm có thể lưu trữ tối đa 2 cặp giá trị trường 32 - 1 (hơn 4 tỷ đồng).

Danh sách

Redis Lists đơn giản là danh sách các chuỗi, được sắp xếp theo thứ tự chèn. Bạn có thể thêm các phần tử vào Danh sách Redis ở phần đầu hoặc phần đuôi.

Thí dụ

redis 127.0.0.1:6379> lpush tutoriallist redis 
(integer) 1 
redis 127.0.0.1:6379> lpush tutoriallist mongodb 
(integer) 2 
redis 127.0.0.1:6379> lpush tutoriallist rabitmq 
(integer) 3 
redis 127.0.0.1:6379> lrange tutoriallist 0 10  

1) "rabitmq" 
2) "mongodb" 
3) "redis"

Độ dài tối đa của danh sách là 2 32 - 1 phần tử (4294967295, hơn 4 tỷ phần tử trên mỗi danh sách).

Bộ

Redis Sets là một tập hợp các chuỗi không có thứ tự. Trong Redis, bạn có thể thêm, bớt và kiểm tra sự tồn tại của các thành viên trong độ phức tạp thời gian O (1).

Thí dụ

redis 127.0.0.1:6379> sadd tutoriallist redis 
(integer) 1 
redis 127.0.0.1:6379> sadd tutoriallist mongodb 
(integer) 1 
redis 127.0.0.1:6379> sadd tutoriallist rabitmq 
(integer) 1 
redis 127.0.0.1:6379> sadd tutoriallist rabitmq 
(integer) 0 
redis 127.0.0.1:6379> smembers tutoriallist  

1) "rabitmq" 
2) "mongodb" 
3) "redis"

Note - Trong ví dụ trên, rabitmq được thêm hai lần, tuy nhiên do thuộc tính duy nhất của tập hợp, nó chỉ được thêm một lần.

Số lượng thành viên tối đa trong một tập hợp là 2 32 - 1 (4294967295, hơn 4 tỷ thành viên mỗi tập hợp).

Bộ được sắp xếp

Redis Sorted Sets tương tự như Redis Sets, các tập hợp chuỗi không lặp lại. Sự khác biệt là, mọi thành viên của Tập hợp đã sắp xếp được liên kết với một điểm số, được sử dụng để lấy tập hợp đã sắp xếp theo thứ tự, từ điểm nhỏ nhất đến điểm lớn nhất. Trong khi các thành viên là duy nhất, điểm số có thể được lặp lại.

Thí dụ

redis 127.0.0.1:6379> zadd tutoriallist 0 redis 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq 
(integer) 0 
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000  

1) "redis" 
2) "mongodb" 
3) "rabitmq"

Các lệnh Redis được sử dụng để thực hiện một số thao tác trên máy chủ Redis.

Để chạy các lệnh trên máy chủ Redis, bạn cần một ứng dụng khách Redis. Ứng dụng khách Redis có sẵn trong gói Redis mà chúng tôi đã cài đặt trước đó.

Cú pháp

Sau đây là cú pháp cơ bản của Redis client.

$redis-cli

Thí dụ

Ví dụ sau giải thích cách chúng ta có thể khởi động ứng dụng Redis.

Để khởi động ứng dụng Redis, hãy mở thiết bị đầu cuối và nhập lệnh redis-cli. Thao tác này sẽ kết nối với máy chủ cục bộ của bạn và bây giờ bạn có thể chạy bất kỳ lệnh nào.

$redis-cli 
redis 127.0.0.1:6379> 
redis 127.0.0.1:6379> PING  
PONG

Trong ví dụ trên, chúng tôi kết nối với máy chủ Redis đang chạy trên máy cục bộ và thực hiện một lệnh PING, kiểm tra xem máy chủ có đang chạy hay không.

Chạy lệnh trên máy chủ từ xa

Để chạy lệnh trên máy chủ từ xa của Redis, bạn cần kết nối với máy chủ của cùng một máy khách redis-cli

Cú pháp

$ redis-cli -h host -p port -a password

Thí dụ

Ví dụ sau cho thấy cách kết nối với máy chủ từ xa của Redis, chạy trên máy chủ 127.0.0.1, cổng 6379 và có mật khẩu mật khẩu.

$redis-cli -h 127.0.0.1 -p 6379 -a "mypass" 
redis 127.0.0.1:6379> 
redis 127.0.0.1:6379> PING  
PONG

Các lệnh phím Redis được sử dụng để quản lý các phím trong Redis. Sau đây là cú pháp để sử dụng các lệnh redis key.

Cú pháp

redis 127.0.0.1:6379> COMMAND KEY_NAME

Thí dụ

redis 127.0.0.1:6379> SET tutorialspoint redis 
OK 
redis 127.0.0.1:6379> DEL tutorialspoint 
(integer) 1

Trong ví dụ trên, DEL là lệnh, trong khi tutorialspointlà chìa khóa. Nếu khóa bị xóa, thì đầu ra của lệnh sẽ là (số nguyên) 1, ngược lại sẽ là (số nguyên) 0.

Lệnh Redis Keys

Bảng sau liệt kê một số lệnh cơ bản liên quan đến phím.

Sr.No Lệnh & Mô tả
1 Phím DEL

Lệnh này sẽ xóa khóa, nếu nó tồn tại.

2 Phím DUMP

Lệnh này trả về một phiên bản tuần tự hóa của giá trị được lưu trữ tại khóa được chỉ định.

3 Phím EXISTS

Lệnh này kiểm tra xem khóa có tồn tại hay không.

4 EXPIRE phím giây

Đặt thời hạn sử dụng của khóa sau thời gian được chỉ định.

5 Dấu thời gian của khóa EXPIREAT

Đặt thời hạn sử dụng của khóa sau thời gian được chỉ định. Ở đây thời gian ở định dạng dấu thời gian Unix.

6 Phím PEXPIRE mili giây

Đặt thời hạn của khóa tính bằng mili giây.

7 PEXPIREAT key mili giây-timestamp

Đặt thời hạn của khóa trong nhãn thời gian Unix được chỉ định là mili giây.

số 8 Mẫu phím

Tìm tất cả các khóa phù hợp với mẫu đã chỉ định.

9 Phím DI CHUYỂN db

Di chuyển một khóa sang cơ sở dữ liệu khác.

10 Khóa PERSIST

Xóa thời hạn khỏi khóa.

11 Khóa PTTL

Nhận thời gian còn lại khi khóa hết hạn tính bằng mili giây.

12 Khóa TTL

Nhận thời gian còn lại khi hết hạn khóa.

13 NGẪU NHIÊN

Trả về một khóa ngẫu nhiên từ Redis.

14 Phím mới RENAME

Thay đổi tên khóa.

15 Phím mới RENAMENX

Đổi tên khóa, nếu khóa mới không tồn tại.

16 Khóa TYPE

Trả về kiểu dữ liệu của giá trị được lưu trữ trong khóa.

Các lệnh chuỗi Redis được sử dụng để quản lý các giá trị chuỗi trong Redis. Sau đây là cú pháp để sử dụng các lệnh chuỗi Redis.

Cú pháp

redis 127.0.0.1:6379> COMMAND KEY_NAME

Thí dụ

redis 127.0.0.1:6379> SET tutorialspoint redis 
OK 
redis 127.0.0.1:6379> GET tutorialspoint 
"redis"

Trong ví dụ trên, SETGET là các lệnh, trong khi tutorialspoint là chìa khóa.

Lệnh Redis Strings

Bảng sau liệt kê một số lệnh cơ bản để quản lý chuỗi trong Redis.

Sr.No Lệnh & Mô tả
1 ĐẶT giá trị khóa

Lệnh này đặt giá trị tại khóa được chỉ định.

2 NHẬN chìa khóa

Nhận giá trị của một khóa.

3 Phím GETRANGE bắt đầu kết thúc

Nhận một chuỗi con của chuỗi được lưu trữ tại một khóa.

4 GETSET giá trị khóa

Đặt giá trị chuỗi của một khóa và trả về giá trị cũ của nó.

5 Phím GETBIT bù đắp

Trả về giá trị bit tại khoảng lệch trong giá trị chuỗi được lưu trữ tại khóa.

6 Phím MGET1 [key2 ..]

Nhận giá trị của tất cả các khóa đã cho

7 Giá trị bù phím SETBIT

Đặt hoặc xóa bit ở độ lệch trong giá trị chuỗi được lưu trữ tại khóa

số 8 Giá trị giây của khóa SETEX

Đặt giá trị khi khóa hết hạn

9 Giá trị khóa SETNX

Đặt giá trị của khóa, chỉ khi khóa không tồn tại

10 Giá trị bù phím SETRANGE

Ghi đè một phần của chuỗi tại khóa bắt đầu từ độ lệch được chỉ định

11 Phím STRLEN

Nhận độ dài của giá trị được lưu trữ trong một khóa

12 Giá trị khóa MSET [giá trị khóa ...]

Đặt nhiều khóa thành nhiều giá trị

13 Giá trị khóa MSETNX [giá trị khóa ...]

Đặt nhiều khóa thành nhiều giá trị, chỉ khi không có khóa nào tồn tại

14 Giá trị mili giây của khóa PSETEX

Đặt giá trị và thời hạn tính bằng mili giây của khóa

15 Khóa INCR

Tăng giá trị số nguyên của khóa lên một

16 Gia số chính INCRBY

Tăng giá trị số nguyên của một khóa lên số tiền đã cho

17 Gia số phím INCRBYFLOAT

Tăng giá trị thực của một khóa bằng số tiền đã cho

18 Khóa DECR

Giảm giá trị số nguyên của khóa đi một

19 Giảm phím DECRBY

Giảm giá trị số nguyên của khóa theo số đã cho

20 APPEND giá trị khóa

Thêm một giá trị vào một khóa

Redis Hashes là bản đồ giữa các trường chuỗi và các giá trị chuỗi. Do đó, chúng là kiểu dữ liệu hoàn hảo để biểu diễn các đối tượng.

Trong Redis, mỗi hàm băm có thể lưu trữ hơn 4 tỷ cặp giá trị trường.

Thí dụ

redis 127.0.0.1:6379> HMSET tutorialspoint name "redis tutorial" 
description "redis basic commands for caching" likes 20 visitors 23000 
OK 
redis 127.0.0.1:6379> HGETALL tutorialspoint  
1) "name" 
2) "redis tutorial" 
3) "description" 
4) "redis basic commands for caching" 
5) "likes" 
6) "20" 
7) "visitors" 
8) "23000"

Trong ví dụ trên, chúng tôi đã thiết lập chi tiết hướng dẫn Redis (tên, mô tả, lượt thích, khách truy cập) trong hàm băm có tên 'tutorialspoint'.

Redis Hash Commands

Bảng sau liệt kê một số lệnh cơ bản liên quan đến băm.

Sr.No Lệnh & Mô tả
1 Trường khóa HDEL2 [field2]

Xóa một hoặc nhiều trường băm.

2 Trường khóa HEXISTS

Xác định xem trường băm có tồn tại hay không.

3 Trường khóa HGET

Nhận giá trị của trường băm được lưu trữ tại khóa được chỉ định.

4 Phím HGETALL

Nhận tất cả các trường và giá trị được lưu trữ trong hàm băm tại khóa được chỉ định

5 Gia số trường khóa HINCRBY

Tăng giá trị số nguyên của trường băm lên một số nhất định

6 Gia số trường khóa HINCRBYFLOAT

Tăng giá trị thực của một trường băm bằng số lượng đã cho

7 Phím HKEYS

Nhận tất cả các trường trong một hàm băm

số 8 Khóa HLEN

Nhận số lượng trường trong một hàm băm

9 Trường khóa HMGET1 [field2]

Nhận giá trị của tất cả các trường băm đã cho

10 Trường khóa HMSET1 giá trị1 [trường2 giá trị2]

Đặt nhiều trường băm thành nhiều giá trị

11 Giá trị trường khóa HSET

Đặt giá trị chuỗi của một trường băm

12 Giá trị trường khóa HSETNX

Đặt giá trị của trường băm, chỉ khi trường không tồn tại

13 Khóa HVALS

Nhận tất cả các giá trị trong một hàm băm

14 Con trỏ phím HSCAN [mẫu MATCH] [COUNT số]

Lặp lại liên tục các trường băm và các giá trị được liên kết

Redis Lists đơn giản là danh sách các chuỗi, được sắp xếp theo thứ tự chèn. Bạn có thể thêm các phần tử trong danh sách Redis ở phần đầu hoặc phần cuối của danh sách.

Độ dài tối đa của danh sách là 2 32 - 1 phần tử (4294967295, hơn 4 tỷ phần tử trên mỗi danh sách).

Thí dụ

redis 127.0.0.1:6379> LPUSH tutorials redis 
(integer) 1 
redis 127.0.0.1:6379> LPUSH tutorials mongodb 
(integer) 2 
redis 127.0.0.1:6379> LPUSH tutorials mysql 
(integer) 3 
redis 127.0.0.1:6379> LRANGE tutorials 0 10  
1) "mysql" 
2) "mongodb" 
3) "redis"

Trong ví dụ trên, ba giá trị được chèn vào danh sách Redis có tên là 'hướng dẫn' bằng lệnh LPUSH.

Redis Liệt kê các lệnh

Bảng sau liệt kê một số lệnh cơ bản liên quan đến danh sách.

Sr.No Lệnh & Mô tả
1 BLPOP key1 [key2] hết giờ

Xóa và lấy phần tử đầu tiên trong danh sách hoặc chặn cho đến khi có phần tử

2 BRPOP key1 [key2] hết giờ

Loại bỏ và lấy phần tử cuối cùng trong danh sách hoặc chặn cho đến khi có phần tử

3 BRPOPLPUSH nguồn đích hết thời gian chờ

Pops một giá trị từ một danh sách, đẩy nó sang một danh sách khác và trả về nó; hoặc khối cho đến khi có sẵn

4 Chỉ mục chính LINDEX

Lấy một phần tử từ danh sách theo chỉ mục của nó

5 Khóa LINSERT TRƯỚC | SAU giá trị tổng hợp

Chèn một phần tử trước hoặc sau một phần tử khác trong danh sách

6 Khóa LLEN

Nhận độ dài của danh sách

7 Khóa LPOP

Xóa và lấy phần tử đầu tiên trong danh sách

số 8 Giá trị khóa LPUSH1 [value2]

Thêm một hoặc nhiều giá trị vào danh sách

9 Giá trị khóa LPUSHX

Thêm một giá trị vào danh sách, chỉ khi danh sách tồn tại

10 Phím bắt đầu dừng LRANGE

Nhận một loạt các phần tử từ một danh sách

11 Giá trị đếm khóa LREM

Xóa các phần tử khỏi danh sách

12 Giá trị chỉ mục chính LSET

Đặt giá trị của một phần tử trong danh sách theo chỉ mục của nó

13 Phím khởi động LTRIM dừng

Cắt danh sách theo phạm vi được chỉ định

14 Phím RPOP

Loại bỏ và lấy phần tử cuối cùng trong danh sách

15 Đích nguồn RPOPLPUSH

Loại bỏ phần tử cuối cùng trong danh sách, nối nó vào một danh sách khác và trả về

16 Giá trị khóa RPUSH1 [value2]

Thêm một hoặc nhiều giá trị vào danh sách

17 Giá trị khóa RPUSHX

Thêm giá trị vào danh sách, chỉ khi danh sách tồn tại

Redis Sets là một bộ sưu tập các chuỗi duy nhất không có thứ tự. Các bộ phương tiện duy nhất không cho phép lặp lại dữ liệu trong một khóa.

Trong Redis set, hãy thêm, bớt và kiểm tra sự tồn tại của các phần tử trong O (1) (thời gian không đổi bất kể số lượng phần tử chứa bên trong Set). Độ dài tối đa của danh sách là 2 32 - 1 phần tử (4294967295, hơn 4 tỷ phần tử mỗi tập hợp).

Thí dụ

redis 127.0.0.1:6379> SADD tutorials redis 
(integer) 1 
redis 127.0.0.1:6379> SADD tutorials mongodb 
(integer) 1 
redis 127.0.0.1:6379> SADD tutorials mysql 
(integer) 1 
redis 127.0.0.1:6379> SADD tutorials mysql 
(integer) 0 
redis 127.0.0.1:6379> SMEMBERS tutorials  
1) "mysql" 
2) "mongodb" 
3) "redis"

Trong ví dụ trên, ba giá trị được chèn vào tập hợp Redis có tên là 'hướng dẫn' bằng lệnh SADD.

Redis đặt lệnh

Bảng sau liệt kê một số lệnh cơ bản liên quan đến tập hợp.

Sr.No Lệnh & Mô tả
1 Thành viên chính của SADD1 [member2]

Thêm một hoặc nhiều thành viên vào một tập hợp

2 Phím SCARD

Nhận số lượng thành viên trong một tập hợp

3 SDIFF key1 [key2]

Trừ nhiều bộ

4 SDIFFSTORE đích khóa1 [key2]

Trừ nhiều tập hợp và lưu trữ tập hợp kết quả trong một khóa

5 Phím SINTER1 [key2]

Giao nhau nhiều bộ

6 SINTERSTORE khóa đích1 [key2]

Giao nhau nhiều tập hợp và lưu trữ tập hợp kết quả trong một khóa

7 Thành viên chủ chốt của SISMEMBER

Xác định xem một giá trị đã cho có phải là thành viên của một tập hợp hay không

số 8 Khóa SMEMBERS

Nhận tất cả các thành viên trong một tập hợp

9 Thành viên đích nguồn SMOVE

Di chuyển một thành viên từ nhóm này sang nhóm khác

10 Phím SPOP

Loại bỏ và trả về một thành viên ngẫu nhiên từ một tập hợp

11 Khóa SRANDMEMBER [số lượng]

Nhận một hoặc nhiều thành viên ngẫu nhiên từ một tập hợp

12 Thành viên chính của SREM1 [member2]

Xóa một hoặc nhiều thành viên khỏi một nhóm

13 SUNION key1 [key2]

Thêm nhiều bộ

14 SUNIONSTORE khóa đích1 [key2]

Thêm nhiều tập hợp và lưu trữ tập hợp kết quả trong một khóa

15 Con trỏ phím SSCAN [mẫu MATCH] [COUNT số]

Tăng dần số lần lặp lại các phần tử đã đặt

Redis Sorted Sets tương tự như Redis Sets với tính năng duy nhất của các giá trị được lưu trữ trong một tập hợp. Sự khác biệt là, mọi thành viên của Tập hợp đã sắp xếp được liên kết với một điểm số, được sử dụng để lấy tập hợp đã sắp xếp theo thứ tự, từ điểm nhỏ nhất đến điểm lớn nhất.

Trong tập đã sắp xếp của Redis, hãy thêm, bớt và kiểm tra sự tồn tại của các phần tử trong O (1) (thời gian không đổi bất kể số phần tử có bên trong tập hợp). Độ dài tối đa của danh sách là 2 32 - 1 phần tử (4294967295, hơn 4 tỷ phần tử mỗi tập hợp).

Thí dụ

redis 127.0.0.1:6379> ZADD tutorials 1 redis 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZADD tutorials 4 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES  
1) "redis" 
2) "1" 
3) "mongodb" 
4) "2" 
5) "mysql" 
6) "4"

Trong ví dụ trên, ba giá trị được chèn với điểm của nó trong tập hợp được sắp xếp của Redis có tên là 'hướng dẫn' bằng lệnh ZADD.

Redis Sorted Sets Lệnh

Bảng sau liệt kê một số lệnh cơ bản liên quan đến các tập hợp đã sắp xếp.

Sr.No Lệnh & Mô tả
1 Điểm chính của ZADD1 thành viên1 [score2 thành viên2]

Thêm một hoặc nhiều thành viên vào một nhóm đã được sắp xếp hoặc cập nhật điểm của nó, nếu nó đã tồn tại

2 Khóa ZCARD

Nhận số lượng thành viên trong một tập hợp được sắp xếp

3 ZCOUNT khóa tối thiểu tối đa

Đếm các thành viên trong một tập hợp đã sắp xếp với điểm trong các giá trị đã cho

4 Thành viên tăng khóa ZINCRBY

Tăng điểm của một thành viên trong nhóm được sắp xếp

5 ZINTERSTORE phím số đích [key ...]

Giao nhau nhiều tập hợp đã sắp xếp và lưu trữ tập hợp đã sắp xếp kết quả trong một khóa mới

6 Tối đa tối thiểu ZLEXCOUNT khóa

Đếm số lượng thành viên trong một tập hợp được sắp xếp giữa một phạm vi từ vựng nhất định

7 Điểm dừng bắt đầu bằng phím ZRANGE [WITHSCORES]

Trả về một phạm vi thành viên trong một tập hợp được sắp xếp, theo chỉ mục

số 8 Tối đa khóa tối thiểu của khóa ZRANGEBYLEX [LIMIT số chênh lệch]

Trả về một loạt các thành viên trong một tập hợp được sắp xếp, theo phạm vi từ vựng

9 Tối đa khóa tối thiểu ZRANGEBYSCORE [WITHSCORES] [LIMIT]

Trả về một loạt các thành viên trong một tập hợp đã sắp xếp, theo điểm số

10 Thành viên chính của ZRANK

Xác định chỉ mục của một thành viên trong một tập hợp được sắp xếp

11 Thành viên chính của ZREM [thành viên ...]

Xóa một hoặc nhiều thành viên khỏi nhóm đã sắp xếp

12 Tối đa tối thiểu của khóa ZREMRANGEBYLEX

Loại bỏ tất cả các thành viên trong một tập hợp được sắp xếp giữa phạm vi từ vựng đã cho

13 Phím bắt đầu dừng ZREMRANGEBYRANK

Loại bỏ tất cả các thành viên trong một nhóm được sắp xếp trong các chỉ mục nhất định

14 Tối đa khóa tối thiểu của khóa ZREMRANGEBYSCORE

Loại bỏ tất cả các thành viên trong một nhóm được sắp xếp trong số điểm đã cho

15 Dừng bắt đầu bằng phím ZREVRANGE [WITHSCORES]

Trả về một loạt các thành viên trong một tập hợp được sắp xếp, theo chỉ mục, với điểm số được sắp xếp từ cao đến thấp

16 Tối thiểu khóa tối đa của khóa ZREVRANGEBYSCORE [WITHSCORES]

Trả về một loạt các thành viên trong một tập hợp được sắp xếp, theo điểm số, với điểm số được sắp xếp từ cao đến thấp

17 Thành viên chính của ZREVRANK

Xác định chỉ số của một thành viên trong một tập hợp đã được sắp xếp, với điểm số được sắp xếp từ cao đến thấp

18 Thành viên chính của ZSCORE

Nhận điểm số được liên kết với thành viên đã cho trong một tập hợp được sắp xếp

19 ZUNIONSTORE phím số đích [key ...]

Thêm nhiều tập hợp đã sắp xếp và lưu trữ tập hợp đã sắp xếp kết quả trong một khóa mới

20 Con trỏ phím ZSCAN [mẫu MATCH] [COUNT số]

Lặp lại tăng dần các phần tử của tập hợp đã sắp xếp và điểm số liên quan

Redis HyperLogLog là một thuật toán sử dụng ngẫu nhiên hóa để cung cấp số lượng phần tử duy nhất trong một tập hợp chỉ sử dụng một hằng số và một lượng nhỏ bộ nhớ.

HyperLogLog cung cấp một ước lượng rất tốt về bản số của một tập hợp ngay cả khi sử dụng một lượng bộ nhớ rất nhỏ khoảng 12 kbyte mỗi khóa với sai số tiêu chuẩn là 0,81%. Không có giới hạn về số lượng vật phẩm bạn có thể đếm, trừ khi bạn đạt đến 2 64 vật phẩm.

Thí dụ

Ví dụ sau giải thích cách hoạt động của Redis HyperLogLog.

redis 127.0.0.1:6379> PFADD tutorials "redis"  
1) (integer) 1  
redis 127.0.0.1:6379> PFADD tutorials "mongodb"  
1) (integer) 1  
redis 127.0.0.1:6379> PFADD tutorials "mysql"  
1) (integer) 1  
redis 127.0.0.1:6379> PFCOUNT tutorials  
(integer) 3

Redis lệnh HyperLogLog

Bảng sau liệt kê một số lệnh cơ bản liên quan đến Redis HyperLogLog.

Sr.No Lệnh & Mô tả
1 Phần tử khóa PFADD [phần tử ...]

Thêm các phần tử được chỉ định vào HyperLogLog được chỉ định.

2 PFCOUNT khóa [khóa ...]

Trả về số lượng xấp xỉ của (các) tập được quan sát bởi HyperLogLog tại (các) khóa.

3 Mã nguồn đích PFMERGE mã nguồn [mã nguồn ...]

Hợp nhất N HyperLogLog khác nhau thành một.

Redis Pub / Sub triển khai hệ thống nhắn tin nơi người gửi (trong thuật ngữ redis gọi là nhà xuất bản) gửi tin nhắn trong khi người nhận (người đăng ký) nhận được chúng. Liên kết mà các tin nhắn được chuyển được gọi làchannel.

Trong Redis, khách hàng có thể đăng ký bất kỳ số lượng kênh nào.

Thí dụ

Ví dụ sau giải thích cách hoạt động của khái niệm người đăng ký xuất bản. Trong ví dụ sau, một khách hàng đăng ký kênh có tên 'redisChat'.

redis 127.0.0.1:6379> SUBSCRIBE redisChat  
Reading messages... (press Ctrl-C to quit) 
1) "subscribe" 
2) "redisChat" 
3) (integer) 1

Bây giờ, hai khách hàng đang xuất bản tin nhắn trên cùng một kênh có tên 'redisChat' và khách hàng đã đăng ký ở trên đang nhận tin nhắn.

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"  
(integer) 1  
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"  
(integer) 1   
1) "message" 
2) "redisChat" 
3) "Redis is a great caching technique" 
1) "message" 
2) "redisChat" 
3) "Learn redis by tutorials point"

Lệnh Redis PubSub

Bảng sau liệt kê một số lệnh cơ bản liên quan đến Redis Pub / Sub.

Sr.No Lệnh & Mô tả
1 PSUBSCRIBE mẫu [mẫu ...]

Đăng ký các kênh phù hợp với các mẫu nhất định.

2 PUBSUB lệnh phụ [đối số [đối số ...]]

Cho biết trạng thái của hệ thống Pub / Sub. Ví dụ, những máy khách nào đang hoạt động trên máy chủ.

3 PUBLISH thông báo kênh

Đăng tin nhắn lên một kênh.

4 PUNSUBSCRIBE [mẫu [mẫu ...]]

Ngừng nghe tin nhắn được đăng lên các kênh khớp với các mẫu đã cho.

5 SUBSCRIBE kênh [kênh ...]

Nghe các tin nhắn được xuất bản trên các kênh nhất định.

6 UNSUBSCRIBE [kênh [channel ...]]

Dừng nghe tin nhắn đã đăng trên các kênh nhất định.

Các giao dịch Redis cho phép thực hiện một nhóm lệnh trong một bước duy nhất. Sau đây là hai thuộc tính của Giao dịch.

  • Tất cả các lệnh trong một giao dịch được thực hiện tuần tự như một hoạt động riêng lẻ. Không thể có yêu cầu do một khách hàng khác đưa ra được phân phát ở giữa quá trình thực hiện giao dịch Redis.

  • Redis giao dịch cũng là nguyên tử. Nguyên tử có nghĩa là tất cả các lệnh hoặc không có lệnh nào được xử lý.

Mẫu vật

Giao dịch Redis được bắt đầu bằng lệnh MULTI và sau đó bạn cần chuyển một danh sách các lệnh sẽ được thực hiện trong giao dịch, sau đó toàn bộ giao dịch được thực hiện bởi EXEC chỉ huy.

redis 127.0.0.1:6379> MULTI 
OK 
List of commands here 
redis 127.0.0.1:6379> EXEC

Thí dụ

Ví dụ sau giải thích cách giao dịch Redis có thể được bắt đầu và thực hiện.

redis 127.0.0.1:6379> MULTI 
OK 
redis 127.0.0.1:6379> SET tutorial redis 
QUEUED 
redis 127.0.0.1:6379> GET tutorial 
QUEUED 
redis 127.0.0.1:6379> INCR visitors 
QUEUED 
redis 127.0.0.1:6379> EXEC  
1) OK 
2) "redis" 
3) (integer) 1

Lệnh giao dịch Redis

Bảng sau đây cho thấy một số lệnh cơ bản liên quan đến các giao dịch Redis.

Sr.No Lệnh & Mô tả
1 TIẾT KIỆM

Hủy bỏ tất cả các lệnh được đưa ra sau MULTI

2 THỰC HIỆN

Thực thi tất cả các lệnh được đưa ra sau MULTI

3 ĐA

Đánh dấu sự bắt đầu của một khối giao dịch

4 UNWATCH

Tiện ích về tất cả các khóa đã xem

5 Phím XEM [phím ...]

Xem các khóa đã cho để xác định việc thực thi khối MULTI / EXEC

Tập lệnh Redis được sử dụng để đánh giá các tập lệnh bằng trình thông dịch Lua. Nó được tích hợp vào Redis bắt đầu từ phiên bản 2.6.0. Lệnh được sử dụng để viết kịch bản làEVAL chỉ huy.

Cú pháp

Sau đây là cú pháp cơ bản của EVAL chỉ huy.

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]

Thí dụ

Ví dụ sau giải thích cách hoạt động của tập lệnh Redis.

redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 
key2 first second  
1) "key1" 
2) "key2" 
3) "first" 
4) "second"

Redis Scripting Commands

Bảng sau liệt kê một số lệnh cơ bản liên quan đến Redis Scripting.

Sr.No Lệnh & Mô tả
1 Các phím số của tập lệnh EVAL [key ...] arg [arg ...]

Thực thi một tập lệnh Lua.

2 EVALSHA sha1 numkeys key [key ...] arg [arg ...]

Thực thi một tập lệnh Lua.

3 Tập lệnh SCRIPT EXISTS [script ...]

Kiểm tra sự tồn tại của tập lệnh trong bộ đệm tập lệnh.

4 SCRIPT FLUSH

Xóa tất cả các tập lệnh khỏi bộ đệm tập lệnh.

5 SCRIPT KILL

Diệt tập lệnh hiện đang được thực thi.

6 Tập lệnh SCRIPT LOAD

Tải tập lệnh Lua được chỉ định vào bộ đệm tập lệnh.

Các lệnh kết nối Redis về cơ bản được sử dụng để quản lý các kết nối máy khách với máy chủ Redis.

Thí dụ

Ví dụ sau giải thích cách máy khách tự xác thực với máy chủ Redis và kiểm tra xem máy chủ có đang chạy hay không.

redis 127.0.0.1:6379> AUTH "password" 
OK 
redis 127.0.0.1:6379> PING 
PONG

Lệnh kết nối Redis

Bảng sau liệt kê một số lệnh cơ bản liên quan đến kết nối Redis.

Sr.No Lệnh & Mô tả
1 Mật khẩu AUTH

Xác thực máy chủ bằng mật khẩu đã cho

2 Tin nhắn ECHO

In chuỗi đã cho

3 PING

Kiểm tra xem máy chủ có đang chạy hay không

4 QUIT

Đóng kết nối hiện tại

5 CHỌN chỉ mục

Thay đổi cơ sở dữ liệu đã chọn cho kết nối hiện tại

Các lệnh máy chủ Redis về cơ bản được sử dụng để quản lý máy chủ Redis.

Thí dụ

Ví dụ sau giải thích cách chúng tôi có thể nhận được tất cả số liệu thống kê và thông tin về máy chủ.

redis 127.0.0.1:6379> INFO  

# Server 
redis_version:2.8.13 
redis_git_sha1:00000000 
redis_git_dirty:0 
redis_build_id:c2238b38b1edb0e2 
redis_mode:standalone 
os:Linux 3.5.0-48-generic x86_64 
arch_bits:64 
multiplexing_api:epoll 
gcc_version:4.7.2 
process_id:3856 
run_id:0e61abd297771de3fe812a3c21027732ac9f41fe 
tcp_port:6379 
uptime_in_seconds:11554 
uptime_in_days:0 hz:10 
lru_clock:16651447 
config_file:  

# Clients 
connected_clients:1
client_longest_output_list:0 
client_biggest_input_buf:0 
blocked_clients:0  

# Memory 
used_memory:589016 
used_memory_human:575.21K 
used_memory_rss:2461696 
used_memory_peak:667312 
used_memory_peak_human:651.67K 
used_memory_lua:33792 
mem_fragmentation_ratio:4.18 
mem_allocator:jemalloc-3.6.0  

# Persistence 
loading:0 
rdb_changes_since_last_save:3 
rdb_bgsave_in_progress:0 
rdb_last_save_time:1409158561 
rdb_last_bgsave_status:ok 
rdb_last_bgsave_time_sec:0 
rdb_current_bgsave_time_sec:-1 
aof_enabled:0 
aof_rewrite_in_progress:0 
aof_rewrite_scheduled:0 
aof_last_rewrite_time_sec:-1 
aof_current_rewrite_time_sec:-1 
aof_last_bgrewrite_status:ok 
aof_last_write_status:ok  

# Stats 
total_connections_received:24 
total_commands_processed:294 
instantaneous_ops_per_sec:0 
rejected_connections:0 
sync_full:0 
sync_partial_ok:0 
sync_partial_err:0 
expired_keys:0 
evicted_keys:0 
keyspace_hits:41
keyspace_misses:82 
pubsub_channels:0 
pubsub_patterns:0 
latest_fork_usec:264  

# Replication 
role:master 
connected_slaves:0 
master_repl_offset:0 
repl_backlog_active:0 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:0 
repl_backlog_histlen:0  

# CPU 
used_cpu_sys:10.49 
used_cpu_user:4.96 
used_cpu_sys_children:0.00 
used_cpu_user_children:0.01  

# Keyspace 
db0:keys = 94,expires = 1,avg_ttl = 41638810 
db1:keys = 1,expires = 0,avg_ttl = 0 
db3:keys = 1,expires = 0,avg_ttl = 0

Lệnh máy chủ Redis

Bảng sau liệt kê một số lệnh cơ bản liên quan đến máy chủ Redis.

Sr.No Lệnh & Mô tả
1 BGREWRITEAOF

Ghi lại không đồng bộ tệp chỉ nối thêm

2 BGSAVE

Lưu không đồng bộ tập dữ liệu vào đĩa

3 KHÁCH HÀNG GIẾT [ip: port] [ID client-id]

Giết kết nối của khách hàng

4 DANH SÁCH KHÁCH HÀNG

Nhận danh sách các kết nối máy khách với máy chủ

5 CLIENT GETNAME

Lấy tên của kết nối hiện tại

6 Thời gian chờ CLIENT PAUSE

Dừng xử lý lệnh từ máy khách trong một thời gian cụ thể

7 CLIENT SETNAME tên-kết nối

Đặt tên kết nối hiện tại

số 8 CỤM CỤM

Nhận một mảng của vị trí Cụm đến ánh xạ nút

9 CHỈ HUY

Nhận một loạt các chi tiết lệnh Redis

10 ĐẾM LỆNH

Nhận tổng số lệnh Redis

11 COMMAND GETKEYS

Trích xuất các khóa được cung cấp một lệnh Redis đầy đủ

12 BGSAVE

Lưu không đồng bộ tập dữ liệu vào đĩa

13 THÔNG TIN LỆNH Tên lệnh [tên lệnh ...]

Nhận một loạt các chi tiết lệnh Redis cụ thể

14 CONFIG GET tham số

Nhận giá trị của thông số cấu hình

15 CẤU HÌNH LÀM LẠI

Viết lại tệp cấu hình với cấu hình trong bộ nhớ

16 CONFIG SET giá trị thông số

Đặt thông số cấu hình thành giá trị đã cho

17 CẤU HÌNH ĐẶT LẠI

Đặt lại thống kê do INFO trả về

18 DBSIZE

Trả về số lượng khóa trong cơ sở dữ liệu đã chọn

19 Khóa ĐỐI TƯỢNG NỢ

Nhận thông tin gỡ lỗi về khóa

20 GẶP GỠ NỢ

Làm cho máy chủ gặp sự cố

21 FLUSHALL

Xóa tất cả các khóa khỏi tất cả cơ sở dữ liệu

22 FLUSHDB

Xóa tất cả các khóa khỏi cơ sở dữ liệu hiện tại

23 THÔNG TIN [phần]

Nhận thông tin và thống kê về máy chủ

24 LƯU CUỐI

Lấy dấu thời gian UNIX của lần lưu thành công cuối cùng vào đĩa

25 GIÁM SÁT

Nghe tất cả các yêu cầu mà máy chủ nhận được trong thời gian thực

26 VAI TRÒ

Trả về vai trò của cá thể trong bối cảnh sao chép

27 TIẾT KIỆM

Lưu đồng bộ tập dữ liệu vào đĩa

28 SHUTDOWN [NOSAVE] [LƯU]

Đồng bộ lưu tập dữ liệu vào đĩa và sau đó tắt máy chủ

29 Cổng máy chủ SLAVEOF

Làm cho máy chủ trở thành nô lệ của phiên bản khác hoặc quảng bá nó như một máy chủ

30 Lệnh con SLOWLOG [đối số]

Quản lý nhật ký truy vấn chậm của Redis

31 ĐỒNG BỘ HÓA

Lệnh được sử dụng để sao chép

32 THỜI GIAN

Trả về thời gian máy chủ hiện tại

Redis SAVE được sử dụng để tạo bản sao lưu của cơ sở dữ liệu Redis hiện tại.

Cú pháp

Sau đây là cú pháp cơ bản của redis SAVE chỉ huy.

127.0.0.1:6379> SAVE

Thí dụ

Ví dụ sau tạo một bản sao lưu của cơ sở dữ liệu hiện tại.

127.0.0.1:6379> SAVE  
OK

Lệnh này sẽ tạo ra một dump.rdb tệp trong thư mục Redis của bạn.

Khôi phục dữ liệu Redis

Để khôi phục dữ liệu Redis, hãy di chuyển tệp sao lưu Redis (dump.rdb) vào thư mục Redis của bạn và khởi động máy chủ. Để lấy thư mục Redis của bạn, hãy sử dụngCONFIG lệnh của Redis như hình dưới đây.

127.0.0.1:6379> CONFIG get dir  
1) "dir" 
2) "/user/tutorialspoint/redis-2.8.13/src"

Trong đầu ra của lệnh trên /user/tutorialspoint/redis-2.8.13/src là thư mục, nơi máy chủ Redis được cài đặt.

Bgsave

Để tạo bản sao lưu Redis, một lệnh thay thế BGSAVEcũng có sẵn. Lệnh này sẽ bắt đầu quá trình sao lưu và chạy nó trong nền.

Thí dụ

127.0.0.1:6379> BGSAVE  
Background saving started

Cơ sở dữ liệu Redis có thể được bảo mật, do đó bất kỳ máy khách nào tạo kết nối đều cần phải xác thực trước khi thực hiện lệnh. Để bảo mật Redis, bạn cần đặt mật khẩu trong tệp cấu hình.

Thí dụ

Ví dụ sau đây cho thấy các bước để bảo mật phiên bản Redis của bạn.

127.0.0.1:6379> CONFIG get requirepass 
1) "requirepass" 
2) ""

Theo mặc định, thuộc tính này trống, có nghĩa là không có mật khẩu nào được đặt cho trường hợp này. Bạn có thể thay đổi thuộc tính này bằng cách thực hiện lệnh sau.

127.0.0.1:6379> CONFIG set requirepass "tutorialspoint" 
OK 
127.0.0.1:6379> CONFIG get requirepass 
1) "requirepass" 
2) "tutorialspoint"

Sau khi đặt mật khẩu, nếu bất kỳ ứng dụng nào chạy lệnh mà không xác thực, thì (error) NOAUTH Authentication required. lỗi sẽ trở lại. Do đó, khách hàng cần sử dụngAUTH lệnh để xác thực chính mình.

Cú pháp

Sau đây là cú pháp cơ bản của AUTH chỉ huy.

127.0.0.1:6379> AUTH password

Thí dụ

127.0.0.1:6379> AUTH "tutorialspoint" 
OK 
127.0.0.1:6379> SET mykey "Test value" 
OK 
127.0.0.1:6379> GET mykey 
"Test value"

Redis benchmark là tiện ích để kiểm tra hiệu suất của Redis bằng cách chạy n lệnh đồng thời.

Cú pháp

Sau đây là cú pháp cơ bản của Redis benchmark.

redis-benchmark [option] [option value]

Thí dụ

Ví dụ sau kiểm tra Redis bằng cách gọi 100000 lệnh.

redis-benchmark -n 100000  

PING_INLINE: 141043.72 requests per second 
PING_BULK: 142857.14 requests per second 
SET: 141442.72 requests per second 
GET: 145348.83 requests per second 
INCR: 137362.64 requests per second 
LPUSH: 145348.83 requests per second 
LPOP: 146198.83 requests per second 
SADD: 146198.83 requests per second 
SPOP: 149253.73 requests per second 
LPUSH (needed to benchmark LRANGE): 148588.42 requests per second 
LRANGE_100 (first 100 elements): 58411.21 requests per second 
LRANGE_300 (first 300 elements): 21195.42 requests per second 
LRANGE_500 (first 450 elements): 14539.11 requests per second 
LRANGE_600 (first 600 elements): 10504.20 requests per second 
MSET (10 keys): 93283.58 requests per second

Sau đây là danh sách các tùy chọn có sẵn trong Redis benchmark.

Sr.No Lựa chọn Sự miêu tả Giá trị mặc định
1 -h Chỉ định tên máy chủ lưu trữ 127.0.0.1
2 -p Chỉ định cổng máy chủ 6379
3 -s Chỉ định ổ cắm máy chủ
4 -c Chỉ định số lượng kết nối song song 50
5 -n Chỉ định tổng số yêu cầu 10000
6 -d Chỉ định kích thước dữ liệu của giá trị SET / GET tính bằng byte 2
7 -k 1 = tiếp tục sống sót, 0 = kết nối lại 1
số 8 -r Sử dụng các khóa ngẫu nhiên cho SET / GET / INCR, giá trị ngẫu nhiên cho SADD
9 -p Yêu cầu <numreq> của đường ống 1
10 -h Chỉ định tên máy chủ lưu trữ
11 -q Buộc Im lặng đến Redis. Chỉ hiển thị các giá trị truy vấn / giây
12 --csv Đầu ra ở định dạng CSV
13 -l Tạo vòng lặp, chạy thử nghiệm mãi mãi
14 -t Chỉ chạy danh sách kiểm tra được phân tách bằng dấu phẩy
15 -I Chế độ nhàn rỗi. Chỉ cần mở N kết nối không hoạt động và đợi

Thí dụ

Ví dụ sau cho thấy nhiều tùy chọn sử dụng trong tiện ích điểm chuẩn của Redis.

redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 100000 -q  

SET: 146198.83 requests per second 
LPUSH: 145560.41 requests per second

Redis chấp nhận các kết nối của máy khách trên cổng TCP đang nghe đã định cấu hình và trên ổ cắm Unix, nếu được bật. Khi một kết nối máy khách mới được chấp nhận, các hoạt động sau được thực hiện:

  • Ổ cắm máy khách được đặt ở trạng thái không chặn vì Redis sử dụng ghép kênh và I / O không chặn.

  • Tùy chọn TCP_NODELAY được đặt để đảm bảo rằng chúng tôi không có sự chậm trễ trong kết nối của mình.

  • Một sự kiện tệp có thể đọc được tạo để Redis có thể thu thập các truy vấn của khách hàng ngay khi có dữ liệu mới để đọc trên socket.

Số lượng khách hàng tối đa

Trong cấu hình Redis (redis.conf), có một thuộc tính được gọi là maxclients, mô tả số lượng khách hàng tối đa có thể kết nối với Redis.

Sau đây là cú pháp cơ bản của lệnh.

config get maxclients  

1) "maxclients" 
2) "10000"

Theo mặc định, thuộc tính này được đặt thành 10000 (tùy thuộc vào giới hạn số lượng bộ mô tả tệp tối đa của Hệ điều hành), mặc dù bạn có thể thay đổi thuộc tính này.

Thí dụ

Trong ví dụ sau, chúng tôi đã đặt số lượng khách hàng tối đa là 100000, trong khi khởi động máy chủ.

redis-server --maxclients 100000

Lệnh máy khách

Sr.No Chỉ huy Sự miêu tả
1 CLIENT LIST Trả về danh sách các máy khách được kết nối với máy chủ Redis
2 CLIENT SETNAME Gán tên cho kết nối hiện tại
3 CLIENT GETNAME Trả về tên của kết nối hiện tại do CLIENT SETNAME đặt
4 CLIENT PAUSE Đây là lệnh kiểm soát kết nối có thể tạm dừng tất cả các ứng dụng khách Redis trong khoảng thời gian được chỉ định (tính bằng mili giây)
5 CLIENT KILL Lệnh này đóng một kết nối máy khách nhất định.

Redis là một máy chủ TCP và hỗ trợ giao thức yêu cầu / phản hồi. Trong Redis, một yêu cầu được thực hiện theo các bước sau:

  • Máy khách gửi một truy vấn đến máy chủ và đọc từ ổ cắm, thường là theo cách chặn, đối với phản hồi của máy chủ.

  • Máy chủ xử lý lệnh và gửi phản hồi trở lại máy khách.

Ý nghĩa của Pipelining

Ý nghĩa cơ bản của pipelining là, máy khách có thể gửi nhiều yêu cầu đến máy chủ mà không cần đợi trả lời và cuối cùng đọc các câu trả lời trong một bước duy nhất.

Thí dụ

Để kiểm tra đường dẫn Redis, chỉ cần khởi động phiên bản Redis và nhập lệnh sau vào terminal.

$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR 
visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379  
+PONG 
+OK 
redis 
:1 
:2 
:3

Trong ví dụ trên, chúng tôi sẽ kiểm tra kết nối Redis bằng cách sử dụng PINGchỉ huy. Chúng tôi đã đặt một chuỗi có têntutorial với giá trị redis. Sau đó, chúng tôi nhận được giá trị khóa đó và tăng số lượng khách truy cập lên ba lần. Kết quả là chúng ta có thể thấy rằng tất cả các lệnh được gửi đến Redis một lần và Redis cung cấp kết quả đầu ra của tất cả các lệnh trong một bước duy nhất.

Lợi ích của Pipelining

Lợi ích của kỹ thuật này là hiệu suất giao thức được cải thiện đáng kể. Tốc độ đạt được nhờ pipelining dao động từ hệ số năm đối với các kết nối đến máy chủ cục bộ cho đến hệ số ít nhất là một trăm đối với các kết nối internet chậm hơn.

Phân vùng là quá trình chia nhỏ dữ liệu của bạn thành nhiều phiên bản Redis, sao cho mỗi phiên bản sẽ chỉ chứa một tập hợp con các khóa của bạn.

Lợi ích của phân vùng

  • Nó cho phép cơ sở dữ liệu lớn hơn nhiều, sử dụng tổng bộ nhớ của nhiều máy tính. Không có phân vùng, bạn bị giới hạn dung lượng bộ nhớ mà một máy tính có thể hỗ trợ.

  • Nó cho phép mở rộng sức mạnh tính toán đến nhiều lõi và nhiều máy tính, và băng thông mạng cho nhiều máy tính và bộ điều hợp mạng.

Nhược điểm của phân vùng

  • Các thao tác liên quan đến nhiều phím thường không được hỗ trợ. Ví dụ: bạn không thể thực hiện giao nhau giữa hai tập hợp nếu chúng được lưu trữ trong các khóa được ánh xạ tới các phiên bản Redis khác nhau.

  • Không thể sử dụng các giao dịch Redis liên quan đến nhiều khóa.

  • Phân vùng chi tiết là chìa khóa, vì vậy không thể chia nhỏ tập dữ liệu với một khóa khổng lồ như một tập hợp được sắp xếp rất lớn.

  • Khi sử dụng phân vùng, việc xử lý dữ liệu phức tạp hơn. Ví dụ: bạn phải xử lý nhiều tệp RDB / AOF và để nhận được bản sao lưu dữ liệu của mình, bạn cần tổng hợp các tệp liên tục từ nhiều phiên bản và máy chủ.

  • Việc thêm và bớt dung lượng có thể phức tạp. Ví dụ: Redis Cluster hỗ trợ tái cân bằng dữ liệu chủ yếu trong suốt với khả năng thêm và xóa các nút trong thời gian chạy. Tuy nhiên, các hệ thống khác như phân vùng phía máy khách và proxy không hỗ trợ tính năng này. Một kỹ thuật được gọi làPresharding giúp trong vấn đề này.

Các loại phân vùng

Có hai kiểu phân vùng có sẵn trong Redis. Giả sử chúng ta có bốn phiên bản Redis, R0, R1, R2, R3 và nhiều khóa đại diện cho người dùng như user: 1, user: 2, ... v.v.

Phân vùng phạm vi

Việc phân vùng theo phạm vi được thực hiện bằng cách ánh xạ các phạm vi đối tượng thành các cá thể Redis cụ thể. Giả sử trong ví dụ của chúng ta, người dùng từ ID 0 đến ID 10000 sẽ chuyển sang trường hợp R0, trong khi người dùng từ ID 10001 đến ID 20000 sẽ đi vào trường hợp R1, v.v.

Phân vùng băm

Trong kiểu phân vùng này, một hàm băm (ví dụ: hàm mô-đun) được sử dụng để chuyển đổi khóa thành một số và sau đó dữ liệu được lưu trữ trong các phiên bản Redis khác nhau.

Trước khi bắt đầu sử dụng Redis trong các chương trình Java, bạn cần đảm bảo rằng bạn đã thiết lập trình điều khiển Java Redis và Java trên máy. Bạn có thể xem hướng dẫn Java của chúng tôi để cài đặt Java trên máy của bạn.

Cài đặt

Bây giờ, chúng ta hãy xem cách thiết lập trình điều khiển Java Redis.

  • Bạn cần tải xuống jar từ đường dẫn Download jedis.jar. Đảm bảo tải xuống phiên bản mới nhất của nó.

  • Bạn cần bao gồm jedis.jar vào classpath của bạn.

Kết nối với Máy chủ Redis

import redis.clients.jedis.Jedis; 

public class RedisJava { 
   public static void main(String[] args) { 
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      //check whether server is running or not 
      System.out.println("Server is running: "+jedis.ping()); 
   } 
}

Bây giờ, hãy biên dịch và chạy chương trình trên để kiểm tra kết nối tới máy chủ Redis. Bạn có thể thay đổi đường dẫn của mình theo yêu cầu của bạn. Chúng tôi đang giả định phiên bản hiện tại củajedis.jar có sẵn trong đường dẫn hiện tại.

$javac RedisJava.java 
$java RedisJava 
Connection to server sucessfully 
Server is running: PONG

Ví dụ về chuỗi Redis Java

import redis.clients.jedis.Jedis; 

public class RedisStringJava { 
   public static void main(String[] args) { 
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      //set the data in redis string 
      jedis.set("tutorial-name", "Redis tutorial"); 
      // Get the stored data and print it 
      System.out.println("Stored string in redis:: "+ jedis.get("tutorialname")); 
   } 
}

Bây giờ, hãy biên dịch và chạy chương trình trên.

$javac RedisStringJava.java 
$java RedisStringJava 
Connection to server sucessfully 
Stored string in redis:: Redis tutorial

Ví dụ về danh sách Java của Redis

import redis.clients.jedis.Jedis; 

public class RedisListJava { 
   public static void main(String[] args) { 
   
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      
      //store data in redis list 
      jedis.lpush("tutorial-list", "Redis"); 
      jedis.lpush("tutorial-list", "Mongodb"); 
      jedis.lpush("tutorial-list", "Mysql"); 
      // Get the stored data and print it 
      List<String> list = jedis.lrange("tutorial-list", 0 ,5); 
      
      for(int i = 0; i<list.size(); i++) { 
         System.out.println("Stored string in redis:: "+list.get(i)); 
      } 
   } 
}

Bây giờ, hãy biên dịch và chạy chương trình trên.

$javac RedisListJava.java 
$java RedisListJava 
Connection to server sucessfully 
Stored string in redis:: Redis 
Stored string in redis:: Mongodb 
Stored string in redis:: Mysql

Ví dụ về Redis Java Keys

import redis.clients.jedis.Jedis; 

public class RedisKeyJava { 
   public static void main(String[] args) { 
   
      //Connecting to Redis server on localhost 
      Jedis jedis = new Jedis("localhost"); 
      System.out.println("Connection to server sucessfully"); 
      //store data in redis list 
      // Get the stored data and print it 
      List<String> list = jedis.keys("*"); 
      
      for(int i = 0; i<list.size(); i++) { 
         System.out.println("List of stored keys:: "+list.get(i)); 
      } 
   } 
}

Bây giờ, hãy biên dịch và chạy chương trình trên.

$javac RedisKeyJava.java 
$java RedisKeyJava 
Connection to server sucessfully 
List of stored keys:: tutorial-name 
List of stored keys:: tutorial-list

Trước khi bắt đầu sử dụng Redis trong các chương trình PHP của mình, bạn cần đảm bảo rằng bạn đã thiết lập trình điều khiển PHP của Redis và PHP trên máy. Bạn có thể xem hướng dẫn PHP để cài đặt PHP trên máy của mình.

Cài đặt

Bây giờ, chúng ta hãy kiểm tra cách thiết lập trình điều khiển PHP của Redis.

Bạn cần tải xuống phpredis từ kho lưu trữ github https://github.com/nicolasff/phpredis. Khi bạn đã tải xuống, hãy giải nén các tệp vào thư mục phpredis. Trên Ubuntu, hãy cài đặt phần mở rộng sau.

cd phpredis 
sudo phpize 
sudo ./configure 
sudo make 
sudo make install

Bây giờ, sao chép và dán nội dung của thư mục “module” vào thư mục mở rộng PHP và thêm các dòng sau vào php.ini.

extension = redis.so

Bây giờ, quá trình cài đặt Redis PHP của bạn đã hoàn tất

Kết nối với Máy chủ Redis

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); 
   $redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully"; //check whether server is running or not echo "Server is running: ".$redis->ping(); 
?>

Khi chương trình được thực thi, nó sẽ cho ra kết quả như sau.

Connection to server sucessfully 
Server is running: PONG

Ví dụ về chuỗi PHP của Redis

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); $redis->connect('127.0.0.1', 6379); 
   echo "Connection to server sucessfully"; 
   //set the data in redis string 
   $redis->set("tutorial-name", "Redis tutorial"); // Get the stored data and print it echo "Stored string in redis:: " .$redis→get("tutorial-name"); 
?>

Khi chương trình trên được thực thi, nó sẽ cho ra kết quả như sau.

Connection to server sucessfully 
Stored string in redis:: Redis tutorial

Ví dụ về danh sách php của Redis

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); $redis->connect('127.0.0.1', 6379); 
   echo "Connection to server sucessfully"; 
   //store data in redis list 
   $redis->lpush("tutorial-list", "Redis"); $redis->lpush("tutorial-list", "Mongodb"); 
   $redis->lpush("tutorial-list", "Mysql"); // Get the stored data and print it $arList = $redis->lrange("tutorial-list", 0 ,5); echo "Stored string in redis:: "; print_r($arList); 
?>

Khi chương trình trên được thực thi, nó sẽ cho ra kết quả như sau.

Connection to server sucessfully 
Stored string in redis:: 
Redis 
Mongodb 
Mysql

Ví dụ về khóa PHP của Redis

<?php 
   //Connecting to Redis server on localhost 
   $redis = new Redis(); $redis->connect('127.0.0.1', 6379); 
   echo "Connection to server sucessfully"; 
   // Get the stored keys and print it 
   $arList = $redis->keys("*"); 
   echo "Stored keys in redis:: " 
   print_r($arList); 
?>

Khi chương trình được thực thi, nó sẽ cho ra kết quả như sau.

Connection to server sucessfully 
Stored string in redis:: 
tutorial-name 
tutorial-list