Redis存储系统

时间:2024-09-28 16:04:02

一、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/

5)将redis的配置文件拷贝到/etc/redis目录下,并修改或确认参数

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

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

待续............