Jedis的使用说明

Jedis 是 Redis 官方首选的 Java 客户端开发包。使用Jedis提供的Java API对Redis进行操作,是Redis官方推崇的方式;并且,使用Jedis提供的对Redis的支持也最为灵活、全面;不足之处,就是编码复杂度较高。

jedis基本使用

引入jedis的依赖包

<dependency>
   <groupId>redis.clients</groupId>
   <artifactId>jedis</artifactId>
   <version>2.8.1</version>
   <type>jar</type>
</dependency>

建立一个到Redis的连接,并进行操作

    @Test
    public void BasicJedisTest(){
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //键值存储
        jedis.set("name","hello world");
        //取值
        String name = jedis.get("name");
        logger.debug(name);
        //删除
        jedis.del("name");
    }

redis连接池的使用

在Jedis中,管理Redis连接的类是JedisPool。

@Test
    public void JedisPoolTest() {
        //连接池初始化
        JedisPool jedisPool = new JedisPool("127.0.0.1", 6379);
        Jedis jedis = null;
        try {
            //获取链接
            jedis = jedisPool.getResource();
            //键值存储
            jedis.set("name", "hello world");
            //取值
            String name = jedis.get("name");
            logger.debug(name);
            //删除
            jedis.del("name");
        } finally {
            //关闭连接
            if (jedis != null) {
                jedis.close();
            }
        }
        //连接池销毁
        jedisPool.destroy();
    }

jedis 常用操作

jedis 常用的操作对象有:字符串,列表(list)、集合(set)、有序集合(sorted set)、哈希表(hash)等数据结构

  • 字符串的相关操作
//键值存储
jedis.set("name", "hello world");
//取值
String name = jedis.get("name");
logger.debug(name);
//删除
jedis.del("name");
  • 列表的相关操作
//右边入队
jedis.rpush("userList", "James");
jedis.rpush("userList", "Jonathan");
jedis.rpush("userList", "Steve");
//返回列表范围:从0开始,到最后一个(-1),包含截止
List<String> userList = jedis.lrange("userList", 0, -1);
//设置:位置1处为新值
jedis.lset("userList", 1, "Nick Xu");
//左边出队
jedis.lpop("userList");
//返回长度:
Long size = jedis.llen("userList");
//进行裁剪,从0开始,到最后一个(-1),包含截止
jedis.ltrim("userList",0,0);
  • 集合的相关操作
    集合和列表不同,集合中的元素是无序的,因此元素也不能重复
//集合数据的添加,一次可添加多个
jedis.sadd("code", "java");
jedis.sadd("code", "node", "python", "scala");
jedis.sadd("code", "java", "swift");
//集合的遍历
Set<String> codeSet = jedis.smembers("code");
//元素的删除(一次可删除多个)
jedis.srem("code", "node");
//返回集合的长度
Long size = jedis.scard("code");
//判断集合是否包含某个元素
Boolean isMember = jedis.sismember("code", "java");
//集合的运算
jedis.sadd("code1", "java", "C#", "C");
//集合的交运算
Set<String> sinterSet = jedis.sinter("code", "code1");
//集合的差集
Set<String> sdiffSet = jedis.sdiff("code", "code1");
//集合的并集
Set<String> sunionSet = jedis.sunion("code", "code1");
  • 有序集合的相关操作
    有序集合在集合的基础上,增加了一个用于排序的参数。
//元素的添加,根据第二个参数进行排序
jedis.zadd("userSet", 1, "James");
jedis.zadd("userSet", 3, "John");
jedis.zadd("userSet", 2, "Jonathan");
//元素相同时,更新当前的权重。
jedis.zadd("userSet", 4, "Jonathan");
//找到从0到-1的所有元素。
Set<String> userSet = jedis.zrange("userSet", 1, 2);
  • 哈希表的相关操作
//初始化map
Map<String, String> map = new HashMap<String, String>();
map.put("age", "20");
map.put("weight", "90KG");
map.put("height", "180cm");
//存放hashMap
jedis.hmset("people", map);
//获取hashMap
List<String> data = jedis.hmget("people", "age", "height");
  • 其他操作
//对key的模糊查询
Set<String> keys = jedis.keys("co*");
//判断某个key是否存在
Boolean isExists = jedis.exists("code2");
//设置过期时间
jedis.expire("code",60);
//获取剩余存活时间(-1代表永久)
long seconds = jedis.ttl("code");
//去掉key的expire设置:不再有失效时间
jedis.persist("code");

//为指定的 key 设置值及其过期时间。如果key已经存在,将会替换旧的值
jedis.setex("name",100,"hello");

//int类型采用string类型的方式存储
jedis.set("amount", 2 + "");
//递增或递减:incr()/decr()
jedis.incr("amount");
//增加或减少:incrBy()/decrBy()
jedis.incrBy("amount", 5);
//清空当前库
jedis.flushDB();
//清空所有库
jedis.flushAll();
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值