Friday, 10 January 2014

Memcached, redis và các key-value store

Memcached và gần đây là Redis, là những cái tên bạn nên biết. Vì chúng:
  • Rất đơn giản
  • Hữu ích
  • Đầu tư 1 thu lãi 10
Memcached đọc là Mem-kaʃ-di

chữ d được đọc riêng ra, vì d ở đây là viết tắt của daemon (như httpd, ftpd ...)
Chứ cache đọc là /kaʃ/ giống hệt như "cash" chứ không có "kết" nào ở đây cả.


Đơn giản
- Cài đặt dễ dàng
- Sử dụng đơn giản - dễ hơn tất cả các loại database - nếu bạn biết database là gì.


Memcached thường được sử dụng để lưu trữ các giá trị tạm thời, các chương trình thường được lập trình để đọc dữ liệu từ memcached trước khi đọc từ database (vì memcached đọc ghi trên RAM nên nhanh hơn rất nhiều lần so với đọc ghi database - trên disk)

Các hệ thống key-value store thường được sử dụng bởi các phần mềm, các lập trình viên thay vì người dùng cuối. Bởi vậy để minh họa cho việc sử dụng memcache/redis, ta cần phải dùng code.
Dưới đây là đoạn code Python sử dụng memcached - bạn không cần phải biết python cũng hiểu được ví dụ này:

In [2]: import memcache # cài bằng pip install python-memcached

In [3]: mc = memcache.Client(['unix:/tmp/memcached.sock'])

In [4]: mc.set('name', 'familug')
Out[4]: True

In [5]: mc.get('name')
Out[5]: 'familug'

In [6]: mc.get('age')

In [7]: mc.set('age', '24')
Out[7]: True

In [8]: mc.get('age')
Out[8]: '24'
Cách chứa data và lấy ra từ memcached chỉ có thế.

Trở lại với phong cách hàn lâm nếu bạn đã đọc đến đây.
$ whatis memcached
memcached (1)        - high-performance memory object caching system
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
Redis is an open source, BSD licensed, advanced key-value store.

Không bàn đến sự khác nhau giữa Memcached và Redis, hai software này đều thường được dùng để lưu trữ dũ liệu tạm thời. 

Việc cài đặt memcached rất đơn giản, không cần config
apt-get install -y memcached
Hết.