Redis คืออะไร ?
Redis ถูกพัฒนาโดย Salvatore Sanfillippo (http://invece.org/) อ้างอิงจากเว็บ http://redis.io/ ได้นิยาม Redis ไว้ดังนี้"Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs."
ผมจับประเด็นตรงที่ Redis เป็นระบบฐานข้อมูลแบบหนึ่งที่ใช้โครงสร้างข้อมูลแบบ key-value ซึ่งอาจมองว่าเป็น NoSQL แบบหนึ่ง และโครงสร้างแบบนี้ก็สอดคล้องกับโครงสร้างข้อมูลแบบ dictionary ในภาษา Python ด้วย
ชุดของบทความนี้จะกล่าวถึงเรื่องการใช้ภาษา Python กับ Redis ในบางเรื่องเท่านั้นครับ โดยมุ่งไปที่การใช้งานในแนว Internet of Things และแน่นอนว่า Raspberry PI จะเป็นอุปกรณ์ที่ผมใช้ในการทดสอบโปรแกรมครับ โดยมีสภาพแวดล้อมการทำงานดังนี้
1. Raspberry PI B2
2. ระบบปฏิบัติการ Raspbian
3. Python 2.7
4. Internet connection
ติดตั้ง Redis Server
การติดตั้ง Redis บน Rasbperry PI จะเหมือนกับการติดตั้งบน PC ครับ$ sudo apt-get install redis-server
หลังการติดตั้งสมบูรณ์ จะได้
redis-server redis-sentinel redis-cli redis-benchmark
ตัวติดตั้ง Redis จะทำการสร้าง startup script ให้โดยอัตโนมัติและเก็บไว้ที่ /etc/init.d/redis-server และ configuration file ไว้ที่ /etc/redis/redis.conf ซึ่งทำให้ Redis จะถูกเรียกใช้งานเองทุกครั้งที่เรา start อุปกรณ์ แต่เราสามารถทำการ start/stop การทำงานของ Redis server ด้วยตัวเอง ดังนี้
$ sudo /etc/init.d/redis-server stop|start|restart
หรือ
$ sudo redis-server /etc/redis/redis.conf
แนะนำ virtualenv
ก่อนจะเข้าไปสู่เรื่องการติดตั้ง Python library ผมอยากจะแนะนำเรื่องการใช้งาน virtualenv สักหน่อยครับ virtualenv มีประโยชน์มากในกรณที่เราต้องทำงานกับ Python หลายโครงงาน ซึ่งทำให้เรามีโอกาสที่จะติดตั้ง library ที่อาจมีปัญหาต่อกันระหว่างโครงงานได้ เช่น บางโครงงานอาจจะต้องการ library รุ่นเก่ากว่าอีกโครงงานหนึ่ง เป็นต้น การใช้ virtualenv จะช่วยลดปัญหาแบบนี้ได้ โดยการสร้างพื้นที่เฉพาะของแต่ละโครงงานไว้ การติดตั้ง library ของแต่ละโครงงานจะไม่ซ้ำซ้อนกัน หากมี library ใดที่เราเห็นว่าน่าจะใช้แบบรวมกับโครงงานอื่นได้ ก็ทำได้โดยการสำเนาไปไว้ในพื้นที่ของโครงงานนั้น ๆ
เริ่มต้นด้วยการติดตั้ง pip
pip เป็น utility สำหรับติดตั้ง package ต่าง ๆ ในภาษา Python เราสามารถติดตั้งได้โดย$ sudo apt-get install python-pip
ติดตั้ง virtualenv
$ sudo pip install virtualenv
สร้าง virtualenv
เราต้องสร้าง virtualenv สำหรับโครงงานของเราก่อนที่เราจะติดตั้ง library สำหรับ redis ครับตามขั้นตอนดังนี้1. สร้างพื้นที่สำหรับโครงงาน
virtualenv <ชื่อโครงงาน > เช่น
$ virtualenv my-redis
ผลที่ได้คือจะมีการสร้าง directory ชื่อ my-redis ขึ้นมา พร้อมกับสำเนาไฟล์ที่จำเป็นในการทำงานมาไว้ใน my-redis
2. Activate
ก่อนการใช้งาน virtualenv เราต้องทำการ activate มันเสียก่อนครับ ด้วยคำสั่ง sourcesource <path to project>/bin/activate เช่น
$ source /home/pi/my-redis/bin/activate
ผลที่ได้จากคำสั่ง เราจะเห็น prompt เปลี่ยนไปอยู่ในรูปแบบ
(project name) username@host name เช่น
(my-redis)pi@raspberry ~/home/pi/my-redis
หมายเหตุ
1) ยกเลิกการใช้งาน virtualenv ด้วยการใช้คำสั่ง$ deactivate
2) ในกรณีที่ไม่ต้องการใช้งาน virtualenv ใด ๆ ให้ใช้การลบ directory นั้น เช่น
$ rm -rf my-redic
3. ติดตั้ง python-redis
เพื่อลดความสับสน เราควรย้ายเข้าไปในโครงงานของเราก่อนทำการติดตั้ง$ pip install redis
มาถึงขี้นตอนนี้แล้ว เราจะได้สภาพแวดล้อมที่พร้อมสำหรับการทำงานกับ Redis ด้วยภาษา Python แล้ว ครับ ตอนต่อไปเราจะเข้าสู่เรื่องการสร้างระบบ instant messaging อย่างง่ายกัน [ต่อไป]
ความคิดเห็น
แสดงความคิดเห็น