1.
简介
redis是一个开源的key-value数据库。它又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的string类型还有 list,set ,sorted set和hash类型。当然这些类型的元素也都是string类型。也就是说list,set这些集合类型也只能包含
string 类型。你可以在这些类型上做很多原子性的操作。比如对一个字符value追加字符串(APPEND命令)。加加或者减减一个数字字符串(INCR命令,当 然是按整数处理的).可以对list类型进行push,或者pop元素操作(可以模拟栈和队列)。对于set类型可以进行一些集合相关操作 (intersection union difference)。memcache也有类似与++,--的命令。
不过memcache的 value只包括string类型。远没有redis的value类型丰富。和memcahe一样为了性能。redis的数据通常都是放到内存中的。当然 redis可以每间隔一定时间将内存中数据写入到磁盘以防止数据丢失。redis也支持主从复制机制(master-slave replication)。redis的其他特性包括简单的事务支持和 发布订阅(pub/sub)通道功能,而且redis配置管理非常简单。还有各种语言版本的开源客户端类库。
2. 安装
下载地址: http://redis.googlecode.com/files/redis-2.0.4.tar.gz
2.0目前是最新稳定版
可以在linux下运行如下命令进行安装
$ tar xzf redis-2.0.4.tar.gz
$ cd redis-2.0.4
$ make
make完后 redis-2.0.4目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli
下面启动redis服务.
$./redis-server
注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动.
$ ./redis-server redis.conf
redis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了.
比如
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
这里演示了get和set命令操作简单类型value的例子。foo是key ,bar是个string类型的value
没linux的可以通过这个在线的来练习,当然在线版的很多管理相关的命令是不支持的。
http://try.redis-db.com/
3 .java客户端hello,world
客户端jar包地址 http://cloud.github.com/downloads/alphazero/jredis/jredis-1.0-rc2.jar 。版本目前有点老,支持到Redis 1.2.6。最新版2.0的还没release
在eclipse中新建一个java项目,然后添加jredis包引用。下面是个hello,world程序
代码
好了redis环境已经搭建好了。后面会写写redis的各种类型和类型相关的命令和一些具体的应用场景
redis是一个开源的key-value数据库。它又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的string类型还有 list,set ,sorted set和hash类型。当然这些类型的元素也都是string类型。也就是说list,set这些集合类型也只能包含
string 类型。你可以在这些类型上做很多原子性的操作。比如对一个字符value追加字符串(APPEND命令)。加加或者减减一个数字字符串(INCR命令,当 然是按整数处理的).可以对list类型进行push,或者pop元素操作(可以模拟栈和队列)。对于set类型可以进行一些集合相关操作 (intersection union difference)。memcache也有类似与++,--的命令。
不过memcache的 value只包括string类型。远没有redis的value类型丰富。和memcahe一样为了性能。redis的数据通常都是放到内存中的。当然 redis可以每间隔一定时间将内存中数据写入到磁盘以防止数据丢失。redis也支持主从复制机制(master-slave replication)。redis的其他特性包括简单的事务支持和 发布订阅(pub/sub)通道功能,而且redis配置管理非常简单。还有各种语言版本的开源客户端类库。
2. 安装
下载地址: http://redis.googlecode.com/files/redis-2.0.4.tar.gz
2.0目前是最新稳定版
可以在linux下运行如下命令进行安装
$ tar xzf redis-2.0.4.tar.gz
$ cd redis-2.0.4
$ make
make完后 redis-2.0.4目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli
下面启动redis服务.
$./redis-server
注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动.
$ ./redis-server redis.conf
redis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了.
比如
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
这里演示了get和set命令操作简单类型value的例子。foo是key ,bar是个string类型的value
没linux的可以通过这个在线的来练习,当然在线版的很多管理相关的命令是不支持的。
http://try.redis-db.com/
3 .java客户端hello,world
客户端jar包地址 http://cloud.github.com/downloads/alphazero/jredis/jredis-1.0-rc2.jar 。版本目前有点老,支持到Redis 1.2.6。最新版2.0的还没release
在eclipse中新建一个java项目,然后添加jredis包引用。下面是个hello,world程序
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/81178cc93a2a3bb5048d90d76e7ec935.gif)
<!--<br/><br/>Code highlighting produced by Actipro CodeHighlighter (freeware)<br/>http://www.CodeHighlighter.com/<br/><br/>-->
package
jredisStudy;
import org.jredis. * ;
import org.jredis.ri.alphazero.JRedisClient;
public class App {
public static void main(String[] args) {
try {
JRedis jr = new JRedisClient( " 192.168.56.55 " , 6379 ); // redis服务地址和端口号
String key = " mKey " ;
jr.set(key, " hello,redis! " );
String v = new String(jr.get(key));
String k2 = " count " ;
jr.incr(k2);
jr.incr(k2);
System.out.println(v);
System.out.println( new String(jr.get(k2)));
} catch (Exception e) {
// TODO: handle exception
}
}
}
import org.jredis. * ;
import org.jredis.ri.alphazero.JRedisClient;
public class App {
public static void main(String[] args) {
try {
JRedis jr = new JRedisClient( " 192.168.56.55 " , 6379 ); // redis服务地址和端口号
String key = " mKey " ;
jr.set(key, " hello,redis! " );
String v = new String(jr.get(key));
String k2 = " count " ;
jr.incr(k2);
jr.incr(k2);
System.out.println(v);
System.out.println( new String(jr.get(k2)));
} catch (Exception e) {
// TODO: handle exception
}
}
}
好了redis环境已经搭建好了。后面会写写redis的各种类型和类型相关的命令和一些具体的应用场景