您的位置:首页 > 数据库 > Redis

java如何操作非关系型数据库redis(-)

2013-12-26 17:47 597 查看


redis简单介绍:


是一种Nosql数据库,Nosql全称是Not Only SQL,是一种不同于关系型数据库的数据库管理系统设计方式。对NoSQL最普遍的解释是“非关系型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS

So what can I do with Jedis?

All of the following redis features are supported:

•Sorting

•Connection handling

•Commands operating on any kind of values

•Commands operating on string values

•Commands operating on hashes

•Commands operating on lists

•Commands operating on sets

•Commands operating on sorted sets

•Transactions

•Pipelining

•Publish/Subscribe

•Persistence control commands

•Remote server control commands

•Connection pooling

•Sharding (MD5,MurmureHash)

•Key-tags for sharding

•Sharding with pipelining

•redis中文官方网站: http://redis.cn/
•redis中文版命令参考: http://redis.readthedocs.org/en/latest/index.html
•redis (Win32/64 Dušan Majkić.): https://github.com/dmajkic/redis/downloads
•jedis 源码: https://github.com/xetorthio/jedis
•jedis jar: https://github.com/xetorthio/jedis/downloads
在java程序中,使用redis步骤:

下载redis

redis (Win32/64 Dušan Majkić.):下载地址: https://github.com/dmajkic/redis/downloads




下载黄线部分

下载完成后,解压





打开黄线文件





起动redis-server.exe就可以进行如下测试了,不过在测试前还需要下载jedis开发包哦,注意在测试时,不要关闭redis-server.exe

注意,在做以下测试时,需要打开redis服务端

下载jedis开发包





jedis-2.1.0.jar是目前最新的开发包,里面增加了许多 新的方法。

如下图示例:





1.将jedis开发包加入到lib目录下





01
Java中使用redis示例程序:
02
Jedis
jedis =
new
Jedis(
"localhost"
6379
);
03
 
04
jedis.set(
"foo"
,
"bar"
);
05
String
value = jedis.get(
"foo"
);
06
07
测试代码
08
import
java.util.Iterator;
09
import
java.util.List;
10
import
java.util.Set;
11
12
import
redis.clients.jedis.Jedis;
13
14
public
class
Test01
{
15
public
static
void
main(String[]
args) {
16
//
连接
17
Jedis
jedis =
new
Jedis(
"localhost"
,
6379
);
18
//
对字符串的操作
19
20
//
给名称为apple的key赋值
21
jedis.set(
"apple"
,
"www.apple.com"
);
22
//
返回名称为apple的key的value
23
//
System.out.println(jedis.get("apple"));
24
25
//
将value追加到key原来值的末尾
26
//
System.out.println(jedis.append("db","mysql"));
27
//
System.out.println(jedis.get("db"));
28
29
//
若key不存在,即把key设为value
30
//
System.out.println(jedis.exists("myphone"));
31
//
System.out.println(jedis.append("myphone","nokia"));
32
33
//
对list操作
34
35
//
将student1插入到teacher列表的表头
36
//
System.out.println(jedis.lpush("teacher","student1"));
37
//
将student2插入到teacher列表的表头
38
//
System.out.println(jedis.lpush("teacher","student2"));
39
//
返回teacher列表的长度
40
//
System.out.println(jedis.llen("teacher"));
41
//
返回teacher列表中的元素,下表从0开始
42
//
System.out.println(jedis.lrange("teacher",0,-1));
43
44
//
java命令遍历
45
/*
46
 
*
List<String> list=jedis.lrange("teacher",0,-1); for (Iterator
47
 
*
iterator = list.iterator(); iterator.hasNext();) { String string =
48
 
*
(String) iterator.next(); System.out.println(string); }
49
 
*/
50
51
//
set操作
52
53
//
向名称为dept的set中添加元素,成功返回1,失败返回0,无序
54
System.out.println(jedis.sadd("dept",
"张三"));
55
System.out.println(jedis.sadd("dept",
"老马"));
56
jedis.sadd("dept",
"老马2");
57
jedis.sadd("dept",
"老马3");
58
jedis.sadd("dept",
"老马4");
59
jedis.sadd("dept",
"老马5");
60
jedis.sadd("dept",
"老马6");
61
//
返回dept的所有元素
62
//
System.out.println(jedis.smembers("dept"));
63
//
遍历
64
65
/*
66
 
*
Set<String> set=jedis.smembers("dept"); for (Iterator iterator =
67
 
*
set.iterator(); iterator.hasNext();) { String string = (String)
68
 
*
iterator.next(); System.out.println(string); }
69
 
*/
70
//
返回dept中的元素个数
71
System.out.println(jedis.scard("dept"));
72
//
删除【老马】这个元素
73
System.out.println("删除某个元素"
+ jedis.srem("dept","老马"));
74
System.out.println(jedis.smembers("dept"));
75
76
//
有序集(个人理解,有序集,就是有序的set集合)
77
78
/*
79
 
*
//向class中添加元素,100用于排序 System.out.println(jedis.zadd("class",100,
80
 
*
"老马")); System.out.println(jedis.zadd("class",100,"老马dd"));
81
 
*
//若"老马"元素存在,则用88替换以前的数据 jedis.zadd("class",88,"老马");
82
 
*
//返回"老马"元素的scope值 System.out.println(jedis.zscore("class","老马"));
83
 
*
System.out.println(jedis.zadd("class",12,"老张"));
84
 
*
//显示class中所有的元素(元素按scope从小到大排列)
85
 
*
System.out.println(jedis.zrange("class",0,-1)); //返回class中元素的个数
86
 
*
System.out.println(jedis.zcard("class")); jedis.zrem("class",
87
 
*
"老马dd"); System.out.println(jedis.zrange("class",0,-1));
88
 
*
//显示class中所有的元素(元素按scope从大到小排列)
89
 
*
System.out.println(jedis.zrevrange("class",0,-1));
90
 
*/
91
}
92
}
93
体会:
1
.通过引入jedis开发包,可通过java程序操作redis数据库
94
2
.
reids提供了多种命令,来操作set,list,zset,string等数据类型,多熟悉,对号入座哦,呵呵
95
3
.
与java中提供的操作集合的方法对比学习
96
4
.
命令比关系数据库简单,各个元素之间没有关系也可存入,这是NOSQL与关系数据库的一点区别(个人的一点小小体会)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: