Jedis第一次连接远程服务器上的redis,竟然被拒绝了!

报错:
在这里插入图片描述
解决:
1、配置安全组,在阿里云上:
在这里插入图片描述

2、修改redis.conf配置文件:3种修改方式。

  • 将bind 127.0.0.1 注释掉
  • 或者修改为:bind 0.0.0.0
  • 或者修改为:bind 指定ip
  • 来达到允许远程访问redis

3、编辑防火强配置文件

vim /etc/sysconfig/iptables

在配文件中开放Linux的6379端口: 添加下面的一句。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

重启防火墙:

service iptables restart	#这是centos6.x  的重启命令。

修改完测试:

public class JedisTest {

    private static Jedis jedis;
    static{
        jedis = new Jedis(ip地址,6379);
    }
    public static void main(String[] args) {
        System.out.println(jedis.ping());
    }
}

结果:
在这里插入图片描述

接下来对jedis的方法五大数据类型进行测试:

 public static void redisKey(){
        jedis.select(0);    //切换为0号数据库
        jedis.flushDB();    //清空当前数据库
        System.out.println("判断name是否存在:"+jedis.exists("name"));
        System.out.println("设置name:linging =>"+jedis.set("name","linging"));
        System.out.println("查看name是什么类型:"+jedis.type("name"));
        System.out.println("将name从默认下标为0的数据库移动到3号数据库:"+jedis.move("name",3));
        System.out.println("切换到3号数据库:"+jedis.select(3));
        System.out.println("设置name5秒后过期:"+jedis.expire("name",5));
        System.out.println("查看name还有多长时间过期:"+jedis.ttl("name")+"秒");
    }

结果:
在这里插入图片描述

String类型:

public static void str(){
        jedis.select(0);    //切换为0号数据库
        jedis.flushDB();    //清空当前数据库
        System.out.println("设置name: linging =>"+jedis.set("name","linging"));
        System.out.println("设置age: 22 => "+jedis.set("age","22"));
        System.out.println("获取name的值:"+jedis.get("name"));
        System.out.println("往name中追加hello:"+jedis.append("name","hello"));
        System.out.println("获取name的值:"+jedis.get("name"));
        System.out.println("查看name的长度:"+jedis.strlen("name"));
        System.out.println("让age自增1:"+jedis.incr("age"));
        System.out.println("让age自减1:"+jedis.decr("age"));
        System.out.println("让age自增10:"+jedis.incrBy("age",10));
        System.out.println("让age自减10:"+jedis.decrBy("age",10));
        System.out.println("截取name下标范围[0,3]的子串:"+jedis.getrange("name",0,3));
        System.out.println("替换name从下标3开始,替换为xxx:"+jedis.setrange("name",3,"xxx"));
        System.out.println("获取name的值:"+jedis.get("name"));
        System.out.println("同时设置多个值:k1 v1 k2 v2 k3 v3: "+jedis.mset("k1","v1","k2","v2","k3","v3"));
        System.out.println("同时获取多个值:k1 k2 k3: "+jedis.mget("k1","k2","k3"));
        System.out.println("设置school:jyu 10秒后过期:"+jedis.setex("school", 10, "jyu"));
        System.out.println("设置school是否成功:"+jedis.setnx("school","qinghua"));
        System.out.println("设置对象:"+jedis.set("user:1", "{name:zhangsan,age:100}"));
        System.out.println("先获取name的值,在设置name的值为:hehe:"+jedis.getSet("name","hehe"));
        System.out.println("获取name的值:"+jedis.get("name"));
    }

结果:
在这里插入图片描述

List类型:

public static void list(){
        jedis.select(0);    //切换为0号数据库
        jedis.flushDB();    //清空当前数据库
        System.out.println("向mylist中压入one、two、three:"+jedis.lpush("mylist","one","two","three"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("向mylist尾部插入four:"+jedis.rpush("mylist","four"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("移除头部的第一个元素:"+jedis.lpop("mylist"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("移除尾部的第一个元素:"+jedis.rpop("mylist"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("获取下标索引为1的值:"+jedis.lindex("mylist",1));
        System.out.println("获取mylist的长度:"+jedis.llen("mylist"));
        System.out.println("向mylist中压入one、two、three:"+jedis.lpush("mylist","one","two","three"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("移除mylist中的2个two:"+jedis.lrem("mylist",2,"two"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("截取列表下标为[0,1]的部分:"+jedis.ltrim("mylist",0,1));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("将列表oldList的尾部第一个值移除,并将该值添加到newList的头部:"+jedis.rpoplpush("mylist","mylist"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("将下标为0的值更新为two:"+jedis.lset("mylist",0,"two"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("在列表中指定的two前边添加xxx:"+jedis.linsert("mylist", ListPosition.BEFORE,"two","xxx"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
        System.out.println("在列表中指定的two后边添加mmm:"+jedis.linsert("mylist", ListPosition.AFTER,"two","mmm"));
        System.out.println("取出mylist的全部值:"+jedis.lrange("mylist",0,-1));
    }

结果:
在这里插入图片描述

Set类型:

public static void set() {
        jedis.select(0);    //切换为0号数据库
        jedis.flushDB();    //清空当前数据库
        System.out.println("往myset中设置值:"+jedis.sadd("myset","hello","hello1","hello2"));
        System.out.println("遍历myset中的全部值:"+jedis.smembers("myset"));
        System.out.println("判断集合中是否存在hello:"+jedis.sismember("myset","hello"));
        System.out.println("获取集合中的元素个数:"+jedis.scard("myset"));
        System.out.println("移除myset中的hello:"+jedis.srem("myset","hello"));
        System.out.println("遍历myset中的全部值:"+jedis.smembers("myset"));
        System.out.println("随机从myset中抽取一个元素:"+jedis.srandmember("myset"));
        System.out.println("随机从myset中抽取count个元素:"+jedis.srandmember("myset",2));
        System.out.println("随机从myset中移除一个元素:"+jedis.spop("myset"));
        System.out.println("随机从myset中移除一个元素:"+jedis.spop("myset"));
        System.out.println("往myset1中设置值:"+jedis.sadd("myset1","a","b","c"));
        System.out.println("往myset2中设置值:"+jedis.sadd("myset2","c","d","e"));
        System.out.println("求myset1和myset2的差集:"+jedis.sdiff("myset1","myset2"));
        System.out.println("求myset1和myset2的交集:"+jedis.sinter("myset1","myset2"));
        System.out.println("求myset1和myset2的并集:"+jedis.sunion("myset1","myset2"));
    }

结果:
在这里插入图片描述

Hash类型:

 public static void hash(){
        jedis.select(0);    //切换为0号数据库
        jedis.flushDB();    //清空当前数据库
        System.out.println("设置myhash:"+jedis.hset("myhash", "name", "linging"));
        Map<String, String> map = new HashMap<String, String>();
        map.put("age","22");
        map.put("gender","man");
        System.out.println("设置多个值:"+jedis.hmset("myhash",map));
        System.out.println("获取name:"+jedis.hget("myhash","name"));
        System.out.println("获取多个值:"+jedis.hmget("myhash","age","gender"));
        System.out.println("获取全部值:"+jedis.hgetAll("myhash"));
        System.out.println("删除gender:"+jedis.hdel("myhash","gender"));
        System.out.println("查看myhash有多少对:"+jedis.hlen("myhash"));
        System.out.println("判断gender是否存在:"+jedis.hexists("myhash","gender"));
        System.out.println("获取myhash的所有key:"+jedis.hkeys("myhash"));
        System.out.println("获取myhash的所有value:"+jedis.hvals("myhash"));
        System.out.println("获取age的值并加5:"+jedis.hincrBy("myhash","age",5));
        System.out.println("获取全部值:"+jedis.hgetAll("myhash"));
        System.out.println("设置值是否成功:"+jedis.hsetnx("myhash","name","llll"));
        System.out.println("获取全部值:"+jedis.hgetAll("myhash"));
    }

结果:
在这里插入图片描述

Zset类型:

 public static void zset(){
        jedis.select(0);    //切换为0号数据库
        jedis.flushDB();    //清空当前数据库
        System.out.println("添加一个值:"+jedis.zadd("score", 80, "zhangsan"));
        Map<String, Double> map = new HashMap<String, Double>();
        map.put("xiaoming",30d);
        map.put("lisi",60d);
        map.put("xiaohei",99d);
        System.out.println("添加多个值:"+jedis.zadd("score",map));
        System.out.println("获取全部值:"+jedis.zrange("score",0,-1));
        System.out.println("显示score的全部值和分数小->大:"+jedis.zrangeByScoreWithScores("score","-inf","+inf"));
        System.out.println("显示score的全部值大->小:"+jedis.zrevrange("score",0,-1));
        System.out.println("移除score中的xiaohei:"+jedis.zrem("score","xiaohei"));
        System.out.println("获取score中的元素个数:"+jedis.zcard("score"));
        System.out.println("获取指定区间[0,70]的元素个数:"+jedis.zcount("score",0,70));
    }

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值