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目录下
02 | Jedis
jedis = new Jedis( "localhost" , 6379 ); |
04 | jedis.set( "foo" , "bar" ); |
05 | String
value = jedis.get( "foo" ); |
08 | import java.util.Iterator; |
12 | import redis.clients.jedis.Jedis; |
15 | public static void main(String[]
args) { |
17 | Jedis
jedis = new Jedis( "localhost" , 6379 ); |
21 | jedis.set( "apple" , "www.apple.com" ); |
22 | //
返回名称为apple的key的value |
23 | //
System.out.println(jedis.get("apple")); |
26 | // System.out.println(jedis.append("db","mysql")); |
27 | //
System.out.println(jedis.get("db")); |
29 | //
若key不存在,即把key设为value |
30 | //
System.out.println(jedis.exists("myphone")); |
31 | // System.out.println(jedis.append("myphone","nokia")); |
35 | //
将student1插入到teacher列表的表头 |
36 | // System.out.println(jedis.lpush("teacher","student1")); |
37 | //
将student2插入到teacher列表的表头 |
38 | //
System.out.println(jedis.lpush("teacher","student2")); |
40 | //
System.out.println(jedis.llen("teacher")); |
41 | //
返回teacher列表中的元素,下表从0开始 |
42 | // System.out.println(jedis.lrange("teacher",0,-1)); |
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); } |
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"); |
62 | //
System.out.println(jedis.smembers("dept")); |
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); } |
71 | System.out.println(jedis.scard("dept")); |
73 | System.out.println("删除某个元素" + jedis.srem("dept","老马")); |
74 | System.out.println(jedis.smembers("dept")); |
76 | //
有序集(个人理解,有序集,就是有序的set集合) |
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)); |
93 | 体会: 1 .通过引入jedis开发包,可通过java程序操作redis数据库 |
94 | 2 .
reids提供了多种命令,来操作set,list,zset,string等数据类型,多熟悉,对号入座哦,呵呵 |
95 | 3 .
与java中提供的操作集合的方法对比学习 |
96 | 4 .
命令比关系数据库简单,各个元素之间没有关系也可存入,这是NOSQL与关系数据库的一点区别(个人的一点小小体会) |