|
- 之前操作数据库我们是用redis-cli来实现的,实际应用中不可能这么使用。实际应用中我们讲和一种开发语言进行搭配使用,
- 从reidis的官网可知它支持如下的语言 :C 、C++、java、C#、等主流语言。下面我们就学习一下如何通过java来操作redis数据库。
reids官方推荐java使用jedis来操作redis数据库库,如下图:http://www.redis.io/clients
- 从官网上下载一下jedis的压缩包,目前已经不提供jar的下载,下载后需要大家自己用maven进行编译生成一个jar,本文提供该jar的下载。
- 引入jar文件,与引入其他的三方jar的方式无异。下面是代码,里面都有注视:
public static void main(String[] args) throws InterruptedException {
String hostId = "192.168.217.2";// redis数据库的ip地址
int port = 6379;// redis数据库的监听端口
Jedis jedis = new Jedis(hostId, port);// 构建一个jedis对象 类似于jdbc中的statement
jedis.auth("xuelianbo");// 进行登录授权
jedis.set("name", "bobo");// 简单的set
String string = jedis.get("name");// 简单的get方法
System.out.println(string);
jedis.quit();// 退出数据库
}
/**
* 操作字符串
*/
String name = jedis.get("name");
System.out.println(name);
Long del = jedis.del("name");
System.out.println(del);
String string = jedis.get("name");
System.out.println(string);
String mset = jedis.mset("k1", "v1", "k2", "v2");
System.out.println(mset);// 返回OK
List<String> mget = jedis.mget("k1", "k2");
for (String string2 : mget) {
System.out.println(string2);
}
/***
* 操作hash
*/
jedis.hset("h1", "name", "xuelianbo");// 向hash中加入值
jedis.hset("h1", "age", "11");
jedis.hset("h1", "sex", "男");
String hget = jedis.hget("h1", "name");// 获得值
System.out.println(hget);
Map<String, String> hgetAll = jedis.hgetAll("h1");// 获得键下的全部属性
Set<String> keySet = hgetAll.keySet();
for (String key : keySet) {
System.out.println(key + ":" + hgetAll.get(key));
}
Boolean hexists = jedis.hexists("h1", "name");// 判断是否存在
System.out.println(hexists);
/***
* 操作list
*/
// lpush
jedis.lpush("L1", "小明");// 列表中添加数据
jedis.lpush("L1", "小强");// 列表中添加数据
jedis.lpush("L1", "小王");// 列表中添加数据
jedis.lpush("L1", "小刚");// 列表中添加数据
List<String> lrange = jedis.lrange("L1", 0, -1);
for (String one : lrange) {
System.out.println(one);
}
// lset
jedis.lset("L1", 2, "2");
// 弹出元素
System.out.println(jedis.llen("L1"));// 显示大小
jedis.lpop("L1");
jedis.lpop("L1");
jedis.lpop("L1");
jedis.lpop("L1");
jedis.lpop("L1");
jedis.lpop("L1");
System.out.println(jedis.llen("L1"));
/***
* keys操作,也就是全局的一些操作
*/
Set<String> keys = jedis.keys("*");// 显示符合pattern的key
for (String key : keys) {
System.out.println(key + ":" + jedis.type(key));// type 是查看key的类型
}
Boolean exists = jedis.exists("K1");// 是否存在某个key
System.out.println(exists);
static {
String hostId = "192.168.217.2";
int port = 6379;
Jedis jedis = new Jedis(hostId, port);
jedis.auth("xuelianbo");
Transaction multi = jedis.multi();// 打开事务
jedis.set("name", "bobo");
multi.exec();// 提交事务 不支持回滚
String string = jedis.get("name");
System.out.println(string);
jedis.quit();
}
未完待续!!!
|
|