请选择 进入手机版 | 继续访问电脑版

Redis中国用户组(CRUG)论坛

 找回密码
 立即注册

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 4495|回复: 2

利用JAVA操作Redis

[复制链接]
  • TA的每日心情
    开心
    2019-4-19 23:07
  • 签到天数: 95 天

    [LV.6]常住居民II

    406

    主题

    515

    帖子

    3981

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3981

    最佳新人活跃会员宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2016-3-16 10:37:57 | 显示全部楼层 |阅读模式

    1. import org.junit.After;
    2. import org.junit.Before;
    3. import org.junit.Test;
    4. import redis.clients.jedis.Jedis;
    5. import redis.clients.jedis.JedisPool;
    6. import redis.clients.jedis.JedisPoolConfig;

    7. import javax.sound.midi.Soundbank;
    8. import java.util.*;

    9. /**
    10. * @author: flychao88
    11. * Time: 2012.5.7 16:23:15
    12. */
    13. public class RedisTest {
    14.     JedisPool pool;
    15.     Jedis jedis;
    16.     @Before
    17.     public void setUp() {
    18.         pool = new JedisPool(new JedisPoolConfig(), "172.16.100.184");

    19.         jedis = pool.getResource();
    20.         jedis.auth("password");
    21.     }

    22.     /**
    23.      * Redis存储初级的字符串
    24.      * CRUD
    25.      */
    26.     @Test
    27.     public void testBasicString(){
    28.         //-----添加数据----------
    29.         jedis.set("name","minxr");//向key-->name中放入了value-->minxr
    30.         System.out.println(jedis.get("name"));//执行结果:minxr

    31.         //-----修改数据-----------
    32.         //1、在原来基础上修改
    33.         jedis.append("name","jarorwar");   //很直观,类似map 将jarorwar append到已经有的value之后
    34.         System.out.println(jedis.get("name"));//执行结果:minxrjarorwar

    35.         //2、直接覆盖原来的数据
    36.         jedis.set("name","闵晓荣");
    37.         System.out.println(jedis.get("name"));//执行结果:闵晓荣

    38.         //删除key对应的记录
    39.         jedis.del("name");
    40.         System.out.println(jedis.get("name"));//执行结果:null

    41.         /**
    42.          * mset相当于
    43.          * jedis.set("name","minxr");
    44.          * jedis.set("jarorwar","闵晓荣");
    45.          */
    46.         jedis.mset("name","minxr","jarorwar","闵晓荣");
    47.         System.out.println(jedis.mget("name","jarorwar"));

    48.     }

    49.     /**
    50.      * jedis操作Map
    51.      */
    52.     @Test
    53.     public void testMap(){
    54.         Map<String,String> user=new HashMap<String,String>();
    55.         user.put("name","minxr");
    56.         user.put("pwd","password");
    57.         jedis.hmset("user",user);
    58.         //取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List
    59.         //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数
    60.         List<String> rsmap = jedis.hmget("user", "name");
    61.         System.out.println(rsmap);

    62.         //删除map中的某个键值
    63. //        jedis.hdel("user","pwd");
    64.         System.out.println(jedis.hmget("user", "pwd")); //因为删除了,所以返回的是null
    65.         System.out.println(jedis.hlen("user")); //返回key为user的键中存放的值的个数1
    66.         System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true
    67.         System.out.println(jedis.hkeys("user"));//返回map对象中的所有key  [pwd, name]
    68.         System.out.println(jedis.hvals("user"));//返回map对象中的所有value  [minxr, password]

    69.         Iterator<String> iter=jedis.hkeys("user").iterator();
    70.         while (iter.hasNext()){
    71.             String key = iter.next();
    72.             System.out.println(key+":"+jedis.hmget("user",key));
    73.         }

    74.     }

    75.     /**
    76.      * jedis操作List
    77.      */
    78.     @Test
    79.     public void testList(){
    80.         //开始前,先移除所有的内容
    81.         jedis.del("java framework");
    82.         System.out.println(jedis.lrange("java framework",0,-1));
    83.        //先向key java framework中存放三条数据
    84.        jedis.lpush("java framework","spring");
    85.        jedis.lpush("java framework","struts");
    86.        jedis.lpush("java framework","hibernate");
    87.        //再取出所有数据jedis.lrange是按范围取出,
    88.        // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
    89.        System.out.println(jedis.lrange("java framework",0,-1));
    90.     }

    91.     /**
    92.      * jedis操作Set
    93.      */
    94.     @Test
    95.     public void testSet(){
    96.         //添加
    97.         jedis.sadd("sname","minxr");
    98.         jedis.sadd("sname","jarorwar");
    99.         jedis.sadd("sname","闵晓荣");
    100.         jedis.sadd("sanme","noname");
    101.         //移除noname
    102.         jedis.srem("sname","noname");
    103.         System.out.println(jedis.smembers("sname"));//获取所有加入的value
    104.         System.out.println(jedis.sismember("sname", "minxr"));//判断 minxr 是否是sname集合的元素
    105.         System.out.println(jedis.srandmember("sname"));
    106.         System.out.println(jedis.scard("sname"));//返回集合的元素个数
    107.     }

    108.     @Test
    109.     public void test() throws InterruptedException {
    110.         //keys中传入的可以用通配符
    111.         System.out.println(jedis.keys("*")); //返回当前库中所有的key  [sose, sanme, name, jarorwar, foo, sname, java framework, user, braand]
    112.         System.out.println(jedis.keys("*name"));//返回的sname   [sname, name]
    113.         System.out.println(jedis.del("sanmdde"));//删除key为sanmdde的对象  删除成功返回1 删除失败(或者不存在)返回 0
    114.         System.out.println(jedis.ttl("sname"));//返回给定key的有效时间,如果是-1则表示永远有效
    115.         jedis.setex("timekey", 10, "min");//通过此方法,可以指定key的存活(有效时间) 时间为秒
    116.         Thread.sleep(5000);//睡眠5秒后,剩余时间将为<=5
    117.         System.out.println(jedis.ttl("timekey"));   //输出结果为5
    118.         jedis.setex("timekey", 1, "min");        //设为1后,下面再看剩余时间就是1了
    119.         System.out.println(jedis.ttl("timekey"));  //输出结果为1
    120.         System.out.println(jedis.exists("key"));//检查key是否存在
    121.         System.out.println(jedis.rename("timekey","time"));
    122.         System.out.println(jedis.get("timekey"));//因为移除,返回为null
    123.         System.out.println(jedis.get("time")); //因为将timekey 重命名为time 所以可以取得值 min

    124.         //jedis 排序
    125.         //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
    126.         jedis.del("a");//先清除数据,再加入数据进行测试
    127.         jedis.rpush("a", "1");
    128.         jedis.lpush("a","6");
    129.         jedis.lpush("a","3");
    130.         jedis.lpush("a","9");
    131.         System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]
    132.         System.out.println(jedis.sort("a")); //[1, 3, 6, 9]  //输入排序后结果
    133.         System.out.println(jedis.lrange("a",0,-1));

    134.     }
    复制代码

    本文转自:http://flychao88.iteye.com/blog/1527163

    该用户从未签到

    0

    主题

    1

    帖子

    43

    积分

    新手上路

    Rank: 1

    积分
    43
    发表于 2016-5-21 20:03:52 | 显示全部楼层
    Time: 2012.5.7 16:23:15 怎么是2012年的,啥版本呢 这个。
  • TA的每日心情

    2017-10-19 11:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    1

    帖子

    62

    积分

    注册会员

    Rank: 2

    积分
    62
    发表于 2017-10-19 11:23:04 | 显示全部楼层
    好久以前的版本了!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Redis中国用户组 ( 京ICP备15003959号

    GMT+8, 2020-2-29 04:15 , Processed in 0.101460 second(s), 31 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表