Java之连接Redis
从前面的学习,大致了解了redis。那么在开发过程中,java要操作redis数据库的话,第一步做什么呢?当然是连接redis啦~那么下面就是连接redis的一些较为基础的操作;目录一、导入依赖二、连接Redis2.1 连接Redis2.2 数据操作2.2.1 String2.2.2 list2.2.3 hash2.2.4 Set2.2.5 sorted Set三、示例代码一、导入依赖<de
·
从前面的学习,大致了解了redis。
那么在开发过程中,java要操作redis数据库的话,第一步做什么呢?
当然是连接redis啦~
那么下面就是连接redis的一些较为基础的操作;
目录
一、导入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
二、连接Redis
2.1 连接Redis
相较于JDBC或者Mybatis的连接方式,连接redis简单很多
//连接指定的redis
Jedis jedis = new Jedis("主机ip","端口");
//如果有密码则需要下面这一行
jedis.auth("密码");
//查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误
jedis.ping();
如果只是连接本地的地址以及默认端口的话,可以直接使用无参构造函数生成对象即可。
因为Jedis继承了Connection这个类,默认的端口和主机IP就是6379和localhost。
2.2 数据操作
redis自带操作命令可以参考
Redis入门(一)——了解Redis
2.2.1 String
方法 | 描述 |
---|---|
String set(String key, String value) | 设置 redis 字符串数据 |
String get(String key) | 获取存储的字符串数据 |
2.2.2 list
方法 | 描述 |
---|---|
Long lpush(String key, String… strings) | 将一个或多个值插入到列表头部 |
Long rpush(String key, String… strings) | 将一个或多个值插入到列表尾部 |
List lrange(String key, long start, long end) | 获取列表指定范围内的元素 |
String lindex(String key, long index) | 通过索引获取列表中的元素 |
Long llen(String key) | 获取列表长度 |
2.2.3 hash
方法 | 描述 |
---|---|
String hmset(String key, Map<String, String> hash) | 创建hash表,赋值字段和值 |
List hmget(String key, String… fields) | 获取hash表字段值 |
Map<String, String> hgetAll(String key) | 获取hash表所有的字段和值 |
Set hkeys(String key) | 获取所有字段 |
Long hlen(String key) | 获取字段数量 |
Boolean hexists(String key, String field) | 判断指定字段是否存在 |
2.2.4 Set
类似于Java中的set集合,是一种无序的集合,其中的元素没有先后顺序。
方法 | 描述 |
---|---|
Long sadd(String key, String… members) | 对集合添加一个或多个成员 |
Long scard(String key) | 获取集合的成员数 |
Set smembers(String key) | 获取集合中的成员 |
Boolean sismember(String key, String member) | 判断集合是否包含指定成员 |
Set sinter(String… keys) | 获取多个集合的交集 |
Set sunion(String… keys) | 获取多个集合并集 |
Set sdiff(String… keys) | 返回第一个集合与其他集合之间的差异 |
2.2.5 sorted Set
和集合一样也是 string 类型元素的集合,且不允许重复的成员
方法 | 描述 |
---|---|
Long zadd(String key, double score, String member) | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
Long zcard(String key) | 获取有序集合的成员数 |
Long zrank(String key, String member) | 获取元素对应的索引 |
Set zrange(String key, long start, long end) | 获取有序集合指定范围的元素 |
Long zrem(String key, String… members) | 移除集合中的一个元素或多个元素 |
三、示例代码
public static void main(String[] args){
//连接本地的redis
Jedis jedis = new Jedis();
//如果有密码则需要下面这一行
jedis.auth("密码");
//查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误
System.out.println(jedis.ping());
/*****************String示例*****************/
//设置字符串数据
jedis.set("word","helloWorld");
//读取字符串数据
System.out.println(jedis.get("word"));
//删除数据
jedis.del("word");
/*****************List示例*****************/
jedis.lpush("list","google");
jedis.lpush("list","aLi");
jedis.rpush("list","Mi");
List<String> stringList = jedis.lrange("list",0l,-1l);
for(String str:stringList){
System.out.println(str);
}
/*****************Hash示例*****************/
HashMap<String,String> map = new HashMap<>();
map.put("name","tom");
map.put("age","81");
jedis.hmset("man",map);
System.out.println(jedis.hmget("man","name"));
System.out.println(jedis.hgetAll("man"));
System.out.println("获取所有字段:"+jedis.hkeys("man"));
System.out.println("获取字段数量:"+jedis.hlen("man"));
System.out.println("判断age字段是否存在:"+jedis.hexists("man","age"));
/*****************Set示例*****************/
jedis.sadd("set1","1");
jedis.sadd("set1","2");
jedis.sadd("set1","1");
jedis.sadd("set2","1");
jedis.sadd("set2","4");
System.out.println("获取集合的成员数"+jedis.scard("set1"));
System.out.println("获取集合中的成员"+jedis.smembers("set2"));
System.out.println("判断集合是否包含指定成员"+jedis.sismember("set1","2"));
System.out.println("获取多个集合的交集"+jedis.sinter("set1","set2"));
System.out.println("获取多个集合并集"+jedis.sunion("set1","set2"));
System.out.println("返回第一个集合与其他集合之间的差异"+jedis.sdiff("set1","set2"));
/*****************sorted Set示例*****************/
jedis.zadd("set1",1,"a");
jedis.zadd("set1",3,"b");
System.out.println("获取有序集合的成员数"+jedis.zcard("set1"));
System.out.println("获取元素对应的索引"+jedis.zrank("set1","b"));
System.out.println("获取有序集合指定范围的元素"+jedis.zrange("set1",0,-1));
System.out.println("移除集合中的一个元素或多个元素"+jedis.zrem("set1","a"));
jedis.zadd("set1",3,"c");
System.out.println("获取有序集合指定范围的元素"+jedis.zrange("set1",0,-1));
jedis.zadd("set1",5,"b");
System.out.println("获取有序集合指定范围的元素"+jedis.zrange("set1",0,-1));
}
更多推荐
所有评论(0)