基础篇:redis在java程序中的用法
1.需要打开redis数据库服务
2.需要引入jedis.jar
下载地址:http://download.csdn.net/download/guanfangyouyou/9792495
3.创建MyRedis类进行测试
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
/**
*
* @author weryou
*
*/
public class MyRedis {
private Jedis jedis;
/**
* redis存储字符串
*/
public void testString() {
//输入IP地址和端口号取得连接
Jedis jedis = new Jedis("127.0.0.1", 6379);
//set(key,value) 和Map一样
jedis.set("key1", "王朝");
jedis.set("key2", "马汉");
jedis.set("key3", "张龙");
jedis.set("key4", "赵虎");
jedis.set("key5", "hello");
//删除某个字符串 删除后为null
jedis.del("key3");
//修改其实就是重新赋值
jedis.set("key4", "赵虎,老牛逼了");
//append 拼接字符串 和StringBuffer类似
jedis.append("key5", " world");
System.out.println(jedis.get("key1"));
System.out.println(jedis.get("key3"));
System.out.println(jedis.get("key4"));
System.out.println(jedis.get("key5"));
jedis.set("version", "1");
//进行加1操作,这里必须是int类型
jedis.incr("version");
//进行减1操作,int类型
jedis.decr("version");
//递增到设定的值
jedis.incrBy("version", 99);
System.out.println(jedis.get("version"));
//递增到设定的值
jedis.decrBy("version",55);
System.out.println(jedis.get("version"));
}
/**
* redis操作Map
*/
public void testMap() {
// -----添加数据----------
jedis = new Jedis("127.0.0.1", 6379);
Map<String, String> map1 = new HashMap<String, String>();
map1.put("name", "weryou");
map1.put("age", "27");
map1.put("tel", "138****5845");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("name", "于大宝");
map2.put("age", "29");
map2.put("tel", "150****0000");
//-------以上是map放值不做过多赘述了---------
//把map存放在redis hmset
jedis.hmset("user1", map1);
jedis.hmset("user2", map2);
//取出user中的name, 注意结果是一个泛型的List
List<String> rsmap1 = jedis.hmget("user1", "name", "age", "tel");
List<String> rsmap2 = jedis.hmget("user2", "name", "age", "tel");
//第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数
System.out.println(rsmap1);
System.out.println(rsmap2);
//删除map中的某个键值
jedis.hdel("user1", "tel");
System.out.println(jedis.hmget("user1", "tel")); //删除后返回的是null
/*System.out.println(jedis.hlen("user1")); // 返回key为user1的键中存放的值的个数
System.out.println(jedis.hlen("user2")); // 返回key为user2的键中存放的值的个数
System.out.println(jedis.exists("user1"));// 是否存在key为user的记录 返回true
System.out.println(jedis.hkeys("user1"));// 返回map对象中的所有key
System.out.println(jedis.hkeys("user2"));
System.out.println(jedis.hvals("user1"));// 返回map对象中的所有value
System.out.println(jedis.hvals("user2"));*/
System.out.println("");
Iterator<String> iter = jedis.hkeys("user2").iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println(key + ":" + jedis.hmget("user2", key));
}
}
/**
* jedis操作List
*/
public void testList() {
jedis = new Jedis("127.0.0.1", 6379);
//开始前,先移除所有的内容,不删除的话会累加
jedis.del("china football");
jedis.lpush("china football", "于大宝");
jedis.lpush("china football", "武磊");
jedis.lpush("china football", "张稀哲");
jedis.lpush("china football", "曾诚");
jedis.lpush("china football", "冯潇霆");
//这里的顺序是先进去的排在最后
System.out.println(jedis.lrange("china football", 0, 0));//china football是key; 0,0 表示从第1个元素开始取,取得第1个元素截至
System.out.println(jedis.lrange("china football", 2, 3));
System.out.println(jedis.lrange("china Football", 2, 3));//严格区分大小写
System.out.println(jedis.lrange("chinafootball", 2, 3));//区分空格
System.out.println(jedis.lrange("china football", 0, -1));//-1 表示全部
}
/**
* jedis操作Set
*/
public void testSet() {
jedis = new Jedis("127.0.0.1", 6379);
//添加
jedis.sadd("chinaFootball", "于大宝");
jedis.sadd("chinaFootball", "武磊");
jedis.sadd("chinaFootball", "郑智");
jedis.sadd("chinaFootball", "曾诚");
jedis.sadd("chinaFootball", "张玉宁");
jedis.sadd("chinaFootball", "郜林");
//移除张玉宁
jedis.srem("chinaFootball", "张玉宁");
System.out.println(jedis.smembers("chinaFootball"));// 获取所有加入的value
System.out.println(jedis.sismember("chinaFootball", "武磊"));//判断武磊是否在国家队
System.out.println(jedis.sismember("chinaFootball", "姚明"));//
System.out.println(jedis.srandmember("chinaFootball"));//最后一个元素
System.out.println(jedis.scard("chinaFootball"));// 返回集合的元素个数
}
public void testOrder() {
jedis = new Jedis("127.0.0.1", 6379);
//jedis 排序
//注意,此处的rpush和lpush是List的操作
//先清除数据再加入数据进行测试
jedis.del("a");
jedis.rpush("a", "1");
jedis.lpush("a", "6");
jedis.lpush("a", "3");
jedis.lpush("a", "9");
System.out.println(jedis.lrange("a", 0, -1));
System.out.println(jedis.sort("a"));
System.out.println(jedis.lrange("a", 0, -1));
}
public static void main(String[] args) {
MyRedis kk = new MyRedis();
//kk.testString();
//kk.testMap();
//kk.testList();
//kk.testSet();
kk.testOrder();
}
}
***以上内容是我参考网上的列子写的,可能会有不足的地方,欢迎大家踊跃批评指正 ***
另外国足在昨天晚上在长沙贺龙体育场对阵韩国取得12强赛的首次胜利,于大宝头球破门打进全场唯一一粒进球,最终赢得比赛拿下宝贵3分,为进军2018俄罗斯世界杯增加一丝希望,祝贺国足。国足加油。