Redis存儲系統


一、QuickStart

1、Redis簡介:

  redis是一個性能非常優秀的內存數據庫,通過key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。

  Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關系數據庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。redis的安裝配置,比較簡單,詳見官方網站。

2、下載安裝

下載:http://download.redis.io/redis-stable.tar.gz

tar -zxvf redis-stable.tar.gz
cd redis-stable
make
make test
make install (管理員權限,加sudo)

遇到的問題:make test時出現:

You need tcl 8.5 or newer in order to run the Redis test

make: *** [test] Error 1

則需要安裝tcl 詳見: http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html

安裝完成,將src下的 redis-server和redis-cli放到 /usr/local/bin/ 下,方便使用

sudo cp redis-server /usr/local/bin/
sudo cp redis-cli /usr/local/bin/

3、測試

啟動服務器:

redis-server

檢測是否運行:redis-cli ping 返回PONG 則運行OK

4、更合適的安裝配置方式

1)創建redis文件夾

sudo mkdir /etc/redis
sudo mkdir /var/redis

2)將啟動腳本復制到/etc/init.d目錄下

sudo cp utils/redis_init_script /etc/init.d/redis_6379

3)修改啟動腳本

確保REDIS_PORT就是你需要開啟的端口,后面的pid文件和配置文件都會依賴它

sudo vim /etc/init.d/redis_6379

4)創建redis的工作目錄

sudo mkdir /var/redis/6379

5)將redis的配置文件拷貝到/etc/redis目錄下,並修改或確認參數

sudo cp redis.conf /etc/redis/6379.conf
#設置daemonize為true
#設置pidfile為/var/run/redis_6379.pid
#設置loglevel
#設置logfile為/var/log/redis_6379.log
#設置dir為/var/redis/6379

6)使用下面命令設置新的init腳本

sudo update-rc.d redis_6379 defaults

7)啟動redis

sudo /etc/init.d/redis_6379 start 

8)確認是否OK

使用redis-cli save命令將數據dump到文件中,查看/var/redis/6379/ 下是否有dump.rdb文件以及log日志redis_6379.log是否生成在/var/log下。

二、客戶端

  Redis支持很多編程語言的客戶端,有C、C#、C++、Clojure、Common Lisp、Erlang、Go、Lua、Objective-C、PHP、Ruby、Scala,甚至更時髦的Node.js,當然,更少不了Java的客戶端支持。Redis官方列出的Java客戶端也有少,有Jedis、JRedis、JDBC-Redis、RJC等,當然,Jedis是Redis官方首選的Java客戶端開發包。

Jedis的pom依賴:

<dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>2.2.1</version>
</dependency>

1、The Easiest Sample

//1. 與redis-server建立連接,默認端口6379
Jedis jedis = new Jedis(“master”); 
//2. 設值
jedis.set("redis", "Advanced key-value store”);
//3. 去除第二步存入的鍵值
String value = jedis.get("redis");
System.out.println("redis=" + value);

參考:

官網: http://redis.io

Redis資料匯總專題:http://blog.nosqlfan.com/html/3537.html

博客: 

http://www.nginx.cn/tag/redis 

http://www.cnblogs.com/shudonghe/p/3262295.html

http://www.blogways.net/blog/2013/06/02/jedis-demo.html

待續............


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM