Xin chào tất cả các bạn, thời gian vừa rồi mình có tìm hiểu về Redis cơ bản, 1 In-memory database rất mạnh và được sử dụng phổ biến trong các hệ thống lớn để lưu cache và nhiều thứ khác. Trong bài viết này, mình sẽ tổng hợp lại 1 số kiến thức mình đã tìm hiểu, vừa để củng cố kiến thức đã học, vừa để chia sẻ 1 số kiến thức cơ bản về Redis với các bạn cũng mới bắt đầu tìm hiểu Redis như mình. Giới thiệu sơ sơ vậy thôi. Chúng ta cùng bắt đầu nào. Let's Goooo !!!!

Redis là gì ?

Nói đơn giản Redis là 1 loại database.Cụ thể Redis là 1 In-memory database và lưu dữ liệu dưới dạng key-value. Khác với các database thông thường như MySQL hay PostgreSQL, in-memory database được triển khai và chạy chủ yếu ở trên RAM. Trong các In-memory database: Redis và Memcached được biết đến nhiều và được sử dụng khá rộng rãi. Vì chạy chủ yếu ở trên RAM, các In-memory database nói chung và Redis nói riêng sẽ có 1 số đặc trưng sau:

1. Tốc độ xử lý cực kỳ nhanh
2. Bị giới hạn về dung lượng
3. Vì lưu data ở trên Ram, nên độ ổn định và an toàn về mặt data tương đối thấp so với các database thông thường. Ví dụ trong trường hợp mất điện đột ngột, thì về cơ bản các data được lưu trên Ram ở thời điểm đó cũng sẽ bị mất.

Với 3 đặc trưng như trên, thì In-memory database nói chung và Redis nói riêng thường rất thích hợp để lưu Cache nhằm cải thiện trải nghiệm người dùng trên các hệ thống lớn.

Cài đặt Redis

Việc cài đặt Redis khá đơn giản, bạn chỉ cần truy cập vào trang chủ của Redis, tìm đến hệ điều hành và phiên bản mà bạn mong muốn cài đặt và follow theo hướng dẫn là được. Ví dụ với hệ điều hành Ubuntu, chúng ta chỉ cần chạy lần lượt các lệnh bên dưới trong terminal là xong.

sudo add-apt-repository ppa:redislabs/redis
sudo apt-get update
sudo apt-get install redis
redis-server --version

Redis CLI vs Redis Server

Cũng tương tự như các Database cơ bản khác, chúng ta sẽ có Redis Server nơi trực tiếp lưu trữ dữ liệu và các database trong cơ sở dữ liệu. Ngoài ra chúng ta sẽ có thêm Redis CLI dùng để access và Redis Server, truy xuất và thao tác với dữ liệu có trong DB.

  • Để access vào Redis CLI nhập command : redis-cli
  • Để access vào Redis Server nhập command : redis-server

Các kiểu dữ liệu trong Redis

Như các bạn đã biết, Redis sẽ lưu dữ liệu dưới dạng key-value, tuy nhiên Redis hỗ trợ rất nhiều kiểu dữ liệu để lưu giá trị value trong key-value. Có 5 loại dữ liệu chính mà chúng ta sẽ hay dùng nhất khi lưu giá trị value như sau :

Các câu lệnh thường dùng khi thao tác với kiểu dữ liệu String

set name tuan
mset email tuan@gmai.com age 28
get name
mget name email age
keys *
del name
rename age nenrei
type name

Các câu lệnh thường dùng khi thao tác với kiểu dữ liệu Hash

hset user1 name tuan : 
hmset user1 email tuan@gmail.com age 28
hget user1 name
hmget user1 name email age
hgetall user1

Các câu lệnh thường dùng khi thao tác với kiểu dữ liệu List

rpush mycolor pink
rpush mycolor green
rpush mycolor red
rpush mycolor yellow
rpop mycolor
llen mycolor
lrange mycolor 0 2
lrange mycolor 0 -1
lindex mycolor 1

Các câu lệnh thường dùng khi thao tác với kiểu dữ liệu Set

sadd myuseralias tuantn10
sadd myuseralias namnt20
sadd myuseralias thongnd30
sadd myuseralias hoannm40
srem myuseralias hoannm40
smembers myuseralias

Các câu lệnh thường dùng khi thao tác với kiểu dữ liệu Sort-Set

zadd top100 1 dacnhantam
zadd top100 2 demenphieuluuky
zadd top100 3 sodo
zadd top100 4 truyenkieu
zrem top100 truyenkieu
zrange top100 0 -1
zrevrange top100 0 -1
zadd top100 5 sodo

Sử dụng Function Sort()

Với các cặp key-value, có value thuộc kiểu dữ liệu List, Set, Sort-Set, chúng ta có thể sử dụng hàm Sort để sắp xếp mảng dữ liệu có trong value. Khi sử dụng function sort, tùy thuộc vào mảng dữ liệu trong value là tập hợp các number hay string, thì cách dùng function sẽ khác nhau 1 chút như sau:

→ Thực hành chức năng Sort kiểu dữ liệu LIST (number)

lpush myscore 100
lpush myscore 120
lpush myscore 15
lpush myscore 72
lpush myscore 78
lrange myscore 0 -1
sort myscore
sort myscore desc
sort myscore desc limit 0 3

→ Thực hành chức năng Sort kiểu dữ liệu LIST (string)

lpush mycolor green
lpush mycolor red
lpush mycolor yellow
lrange mycolor 0 -1
sort mycolor → Lỗi
sort mycolor alpha
sort mycolor alpha desc
sort mycolor alpha desc limit 0 3

Kết Luận

Trong bài viết này mình đã giới thiệu cho các bạn biết Redis là gì và cách thao tác với những kiểu dữ liệu cơ bản trong Redis. Hiện tại mình cũng vẫn đang trong quá trình tìm hiểu thêm về Redis, nếu các bạn có góp ý gì về bài viết của mình, mình sẽ rất vui khi nhận được các comment cũng như FB từ phía các bạn. Ngoài Redis ra, còn 1 key-value database rất nổi tiếng khác là Memcached. Có rất nhiều viết phân tích ưu nhược điểm của 2 key-value DB này. Cặp kỳ phùng địch thủ Redis và Memcached cũng giống như Apache và Nginx trong thế giới Web server hay Messi và Cristiano Ronaldo trong thế giới bóng đá vậy. Nếu có hứng thú, các bạn cũng có thể tìm hiểu thử về Memcached xem nó có gì hay và có gì dở hơn Redis bạn nhé. Cuối cùng, cảm ơn các bạn đã dành thời gian để đọc hết bài viết của mình. Hẹn gặp lại các bạn trong các bài viết tiếp theo. See you againnnn !!!!

Tài Liệu Tham Khảo