Jedis操作实例

Redis中有5种数据类型:

  • String
  • List
  • Set
  • Sort Set
  • Hash(或者说Map)

下面的例子就是用Jedis操作这5种数据类型。

package com.ghs.test;

import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.SortingParams;

import java.util.*;

/**
 * 
 * @author liu
 *
 */
public class RedisTest {
    JedisPool pool;
    Jedis jedis;
    @Before
    public void setUp() {
        pool = new JedisPool("192.168.1.108");
        jedis = pool.getResource();
    }

    /**
     * Redis存储字符串
     * CRUD
     */
    @Test
    public void testString(){
        //-----添加数据----------
        jedis.set("name","zhangsan");//添加键值对name:zhangsan
        System.out.println(jedis.get("name"));//执行结果:zhangsan

        //-----修改数据----------
        jedis.set("name", "lisi");
        System.out.println(jedis.get("name"));//执行结果:lisi

        //-----追加数据-----------
        jedis.append("name","哥哥");
        System.out.println(jedis.get("name"));//执行结果:lisi哥哥

        //-----删除数据-----------
        jedis.del("name");
        System.out.println(jedis.get("name"));//执行结果:null

        //批量增加数据
        jedis.mset("name","zhangsan","age","21");
        System.out.println(jedis.mget("name","age"));//执行结果:[zhangsan,21]
    }


    /**
     * Redis存储List
     */
    @Test
    public void testList() {
        //开始前,先清除List中的所有元素
        jedis.del("Database");
        System.out.println(jedis.lrange("Database", 0, -1));

        //-----向key值为Database的List中添加数据-----------
        //rpush()表示往右边添加,lpush()表示往左边添加
        jedis.rpush("Database", "MySql");
        jedis.rpush("Database", "Oracle");
        jedis.rpush("Database", "SQL Server");
        jedis.rpush("Database", "DB2");
        jedis.rpush("Database", "Access");

        //-----从key值为Database的List中取数据-----------
        //第一个是key,第二个是起始位置,第三个是结束位置。如果第二个参数是-1,表示取出所有
        System.out.println(jedis.lrange("Database", 0, -1));
        //获取列表中指定下标的值
        System.out.println(jedis.lindex("Database", 0));

        //-----修改List中指定下标的元素的值-----------
        jedis.lset("Database", 3, "Sybase");
        System.out.println(jedis.lrange("Database", 0, -1));

        //-----删除List中的元素-----------
        //删除列表中指定值的元素,第二个参数为元素的个数,第三个参数为元素的值
        jedis.lrem("Database", 1, "Sybase");
        System.out.println(jedis.lrange("Database", 0, -1));
        //删除区间以外的数据
        jedis.ltrim("Database", 0, 2);
        System.out.println(jedis.lrange("Database", 0, -1));

        //-----其他操作-----------
        //获取数组的长度
        System.out.println(jedis.llen("Database"));
        //为数组排序
        System.out.println(jedis.sort("Database",new SortingParams().alpha()));
    }

    /**
     * Redis存储Set
     * CRUD
     */
    @Test
    public void testSet(){
        //-----往Set中添加数据-----------
        jedis.sadd("language","Java");
        jedis.sadd("language","C语言");
        jedis.sadd("language","C++");
        jedis.sadd("language","JavaScript");

        //-----获取Set中的元素-----------
        //获取所有的元素
        System.out.println(jedis.smembers("language"));

        //-----删除Set中的某个元素-----------
        jedis.srem("language","Java");
        System.out.println(jedis.smembers("language"));

        //-----其他操作-----------
        //判断某个元素是否在集合内
        System.out.println(jedis.sismember("language", "Java"));
        //返回集合中元素的个数
        System.out.println(jedis.scard("language"));
    }

    /**
     * Redis存储SortedSet
     * CRUD
     */
    @Test
    public void testSortedSet(){
        //-----往SortedSet中添加数据-----------
        //第二个参数是元素的权重,权重大的排在后面
        jedis.zadd("course",1000,"C语言");
        jedis.zadd("course",1001,"数据结构");
        jedis.zadd("course",1004,"计算机网络");
        jedis.zadd("course",1002,"数据库");


        //-----获取SortedSet中的元素-----------
        //获取所有的元素
        System.out.println(jedis.zrange("course", 0, -1));

        //-----删除SortedSet中的某个元素-----------
        //删除指定元素
        jedis.zrem("course","数据结构");
        System.out.println(jedis.zrange("course",0,-1));

        //-----其他操作-----------
        //返回集合中元素的个数
        System.out.println(jedis.zcard("course"));
        //返回某个范围内元素的个数
        System.out.println(jedis.zcount("course", 1000.5,1002.5));
        //获取某个元素的权重
        System.out.println(jedis.zscore("course", "数据库"));
    }

    /**
     * Redis存储Hash
     * CRUD
     */
    @Test
    public void testHash(){
        //-----存HashMap-----------
        Map<String,String> user=new HashMap<String,String>();
        user.put("name","zhangsan");
        user.put("password","123456");
        user.put("age", "21");
        jedis.hmset("user",user);

        //-----从HashMap中取元素-----------
        //取HashMap中某一个key的值
        List<String> userName = jedis.hmget("user", "name");
        System.out.println(userName);
        //取HashMap所有的key
        System.out.println(jedis.hkeys("user"));
        //取HashMap所有的value
        System.out.println(jedis.hvals("user"));
        //迭代取出HashMap中所有的键值对
        Iterator<String> it = jedis.hkeys("user").iterator();
        while(it.hasNext()){
            String key = it.next();
            System.out.print(key+":"+jedis.hmget("user", key)+";");
        }
        System.out.println();

        //-----删除HashMap中的某个键值-----------
        jedis.hdel("user", "age");
        System.out.println(jedis.hkeys("user"));

        //-----其他操作-----------
        //获取HashMap中键值对的个数
        System.out.println(jedis.hlen("user"));
        //某个key值的HashMap是否存在
        System.out.println(jedis.exists("user"));
    }
}

源码:http://download.csdn.net/detail/u011983531/9224833

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值