Jedis连接Redis(初识四)

Jedis操作各种redis中的数据结构

Jedis: 一款java操作redis数据库的工具.

第一步:创建maven项目,导入依赖

  <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>3.6.0</version>
  </dependency>

(1)注意:
确认远程服务器是否可以ping通: ping vm的ip地址
在这里插入图片描述

( 2)确认防火墙是否关闭或放行

service iptables stop
service iptables status

第二步:链接服务器
方案一
单实例链接

Jedis jedis = new Jedis(“ip地址”, 端口号);//建立链接

核心代码:

@Test
    public void String(){
       //创建对象//连接虚拟机的地址
       Jedis jedis=new Jedis("192.168.45.131",6380);
       //执行操作
       jedis.set("username","kk");
       //关闭
       jedis.setex("age",10,"18");
       String username = jedis.get("username");
       System.out.println("username:"+username);
       Long username1 = jedis.del("username");
       System.out.println(username1);
       jedis.close();
    }

常见异常:
在这里插入图片描述解决方案:
虚拟机客户端连接的ip是127.0.0.1,意思是连接的本机,其他机器无法连接,这里需要修改配置文件,将连接地址改为虚拟机的地址,就可以了.
修改redis.conf文件里面的 bind 连接地址,将连接地址改为自己虚拟机的ip

bind 192.168.197.129

重新启动服务,Jedis就可以正常连上了
Idea中控制台打印:

在这里插入图片描述

字符串类型 string

set
get

/*字符串类型*/
   @Test
    public void String(){
       //创建对象//连接虚拟机的地址
       Jedis jedis=new Jedis("192.168.45.131",6380);
       //2. 操作
	   //存储
	  jedis.set("username","zhangsan");
	 //获取
	 String username = jedis.get("username");
	 System.out.println(username);
   //可以使用setex()方法存储可以指定过期时间的 key value
    jedis.setex("activecode",20,"hehe");//将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对
	
		  //3. 关闭连接
		  jedis.close();
    }

哈希类型 hash : map格式

hset
hget
hgetAll

/*哈希类型*/
    @Test
    public void Hash(){
        //创建对象//连接虚拟机的地址
        Jedis jedis=new Jedis("192.168.45.131",6380);
         //2. 操作
		        // 存储hash
		        jedis.hset("user","name","lisi");
		        jedis.hset("user","age","23");
		        jedis.hset("user","gender","female");
		
		        // 获取hash
		        String name = jedis.hget("user", "name");
		        System.out.println(name);
		
		
		        // 获取hash的所有map中的数据
		        Map<String, String> user = jedis.hgetAll("user");
		
		        // keyset
		        Set<String> keySet = user.keySet();
		        for (String key : keySet) {
		            //获取value
		            String value = user.get(key);
		            System.out.println(key + ":" + value);
		        }
		
		        //3. 关闭连接
		        jedis.close();
    }

列表类型 list : linkedlist格式

lpush / rpush
lpop / rpop
lrange start end : 范围获取

 /*列表类型*/
    @Test
    public void List(){
        //创建对象//连接虚拟机的地址
        Jedis jedis=new Jedis("192.168.45.131",6380);
          //2. 操作
		        // list 存储
		        jedis.lpush("mylist","a","b","c");//从左边存
		        jedis.rpush("mylist","a","b","c");//从右边存
		
		        // list 范围获取
		        List<String> mylist = jedis.lrange("mylist", 0, -1);
		        System.out.println(mylist);
		        
		        // list 弹出
		        String element1 = jedis.lpop("mylist");//c
		        System.out.println(element1);
		
		        String element2 = jedis.rpop("mylist");//c
		        System.out.println(element2);
		
		        // list 范围获取
		        List<String> mylist2 = jedis.lrange("mylist", 0, -1);
		        System.out.println(mylist2);
		
		        //3. 关闭连接
		        jedis.close();
    }

集合类型 set

sadd
smembers:获取所有元素

/*集合类型*/
    @Test
    public void Set(){
        //创建对象//连接虚拟机的地址
        Jedis jedis=new Jedis("192.168.45.131",6380);
        //添加
        jedis.sadd("username","h");
        jedis.sadd("username","d","t");
        //获取
        Set<String> username =jedis.smembers("username");
        System.out.println(username);
        jedis.close();
    }

有序集合类型 sortedset

zadd
zrange

/*有序集合*/
    @Test
    public void SortedSet(){
        //创建对象//连接虚拟机的地址
        Jedis jedis=new Jedis("192.168.45.131",6380);
        // sortedset 存储
        jedis.zadd("sroce",90,"lisi1");
        jedis.zadd("sroce",60,"lisi2");
        jedis.zadd("sroce",80,"lisi3");
        // sortedset 获取
        Set<String> sroce = jedis.zrange("sroce", 0, -1);
        System.out.println(sroce);
          //3. 关闭连接
        jedis.close();
    }

jedis连接池: JedisPool

使用:
1. 创建JedisPool连接池对象
2. 调用方法 getResource()方法获取Jedis连接

// 1.获取连接池配置对象,设置配置项
JedisPoolConfig config = new JedisPoolConfig();
// 1.1最大的连接数
config.setMaxTotal(30);
// 1.2最大的空闲
config.setMaxIdle(10);
// 2.获取连接池
JedisPool jedisPool = new JedisPool(config, "192.168.197.129", 6379);
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
// 3.设置数据
jedis.set("name", "张三");
String name = jedis.get("name");
System.out.println("name=" + name);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jedis != null) {
jedis.close();
}
// 4.虚拟机关闭的时候,释放资源
if (jedisPool != null) {
jedisPool.close();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值