zoukankan      html  css  js  c++  java
  • 在java中使用redis

    在java中使用redis很简单,只需要添加jedist.jar,通过它的api就可以了。而且,api和redis的语法几乎完全相同。以下简单的测试:

    参考:http://www.runoob.com/redis/redis-java.html

      1 package com.test.redis;
      2 
      3 import org.junit.Test;
      4 import redis.clients.jedis.Jedis;
      5 
      6 import java.util.HashMap;
      7 import java.util.List;
      8 import java.util.Map;
      9 import java.util.Set;
     10 
     11 /**
     12  * 学习使用redis
     13  * Created by Administrator on 2016/2/19.
     14  */
     15 public class HelloRedis {
     16     private static final Jedis jedis = new Jedis("127.0.0.1",6379);
     17 
     18     public static void main(String[] args) {
     19         jedis.set("test","Hello Redis");
     20         String test = jedis.get("test");
     21         System.out.println(test);
     22         jedis.del("test");
     23     }
     24 
     25     /**
     26      * 一些操作
     27      */
     28     @Test
     29     public void testOption(){
     30         //查看redis是否运行
     31         System.out.println(jedis.ping());
     32         String s = jedis.flushDB();
     33         System.out.println("清空后:"+s);
     34 
     35         System.out.println(jedis.echo("foo"));
     36 
     37         jedis.set("foo","存储变量foo");
     38         Boolean is = jedis.exists("foo");
     39         System.out.println("foo是否存在:"+is);
     40 
     41         Set<String> keys = jedis.keys("*");
     42         System.out.println("数据库中所有的keys:"+keys);
     43 
     44         Set<String> keys1 = jedis.keys("f*");
     45         System.out.println("数据库中以 f 为前缀的keys"+keys1);
     46 
     47         String foo = jedis.type("foo");
     48         System.out.println("foo的类型:"+foo);
     49 
     50         jedis.del("foo");
     51     }
     52 
     53     /**
     54      * jedis存储字符串
     55      */
     56     @Test
     57     public void testString(){
     58         jedis.flushDB();
     59         //--添加数据--
     60         jedis.set("name","miao");
     61         System.out.println("取出name:"+jedis.get("name"));
     62 
     63         //取出元数据,并修改
     64         String name = jedis.getSet("name", "被取出后修改");
     65         System.out.println("取出:"+name+" 修改:"+jedis.get("name"));
     66         String name1 = jedis.getrange("name", 0,5 );
     67         System.out.println("获取value值并截取(中文容易乱码):"+name1);
     68         //--覆盖--
     69         jedis.set("name","覆盖了");
     70         System.out.println("取出重设置后的name:"+jedis.get("name"));
     71         //拼接
     72         jedis.append("name"," be stronger!");
     73         System.out.println("拼接后的name:"+jedis.get("name"));
     74 
     75         jedis.del("name");
     76         System.out.println("删除后的name:"+jedis.get("name"));
     77         //设置多个
     78         jedis.mset("name","miao","age","25","birth","1991-02-22");
     79         jedis.incr("age");//+1
     80         System.out.println(jedis.get("name")+"-"+jedis.get("age")+"-"+jedis.get("birth"));
     81         jedis.del("name","age","birth");
     82     }
     83 
     84     /**
     85      * redis操作map
     86      */
     87     @Test
     88     public void testMap(){
     89         jedis.flushDB();
     90         //--添加数据--
     91         Map<String,String> map = new HashMap<>();
     92         map.put("name","miao");
     93         map.put("age","35");
     94         map.put("birth","1991-02-33");
     95         jedis.hmset("user",map);
     96         //取出
     97         List<String> user = jedis.hmget("user","name","age","birth");
     98         System.out.println(user);
     99         Map<String, String> user1 = jedis.hgetAll("user");//取出user
    100         System.out.println("user1="+user1);
    101 //        jedis.del("user");
    102 
    103         //删除某个属性
    104         jedis.hdel("user","birth");
    105         System.out.println(jedis.hmget("user","name","age","birth"));
    106         Long count = jedis.hlen("user");//user的属性的个数
    107         System.out.println("属性个数:"+count);
    108         Boolean is = jedis.exists("user");//是否存在
    109         System.out.println("是否存在:"+is);
    110         Set<String> ukeys = jedis.hkeys("user");//user的所有属性
    111         System.out.println(ukeys);
    112         List<String> uvals = jedis.hvals("user");//user的所有属性值
    113         System.out.println(uvals);
    114 
    115         jedis.del("user");
    116     }
    117 
    118     /**
    119      * redis操作list
    120      */
    121     @Test
    122     public void testList(){
    123         jedis.flushDB();
    124         //查看
    125         List<String> users = jedis.lrange("users", 0, -1);
    126         System.out.println("list:"+users);
    127         //向左插入
    128         jedis.lpush("users","miao");
    129         jedis.lpush("users","rui");
    130         jedis.lpush("users","feng");
    131         //向右插入
    132         jedis.rpush("users","ming");
    133         jedis.rpush("users","hong");
    134         jedis.rpush("users","xing");
    135         System.out.println("(注意顺序)插入的结果:"+jedis.lrange("users",0,-1));
    136         //长度
    137         Long len = jedis.llen("users");
    138         System.out.println("list长度:"+len);
    139         //子串
    140         System.out.println("取出索引0到1的数据:"+jedis.lrange("users",0,1));
    141         //修改单个值
    142         jedis.lset("users",0,"我变成第一个");
    143         System.out.println("修改单个值后:"+jedis.lrange("users",0,-1));
    144         //获取指定下标的值
    145         String users1 = jedis.lindex("users", 0);
    146         System.out.println("下标0为:"+users1);
    147         //删除指定下标的值
    148         Long lrem = jedis.lrem("users", 0,"我变成第一个");
    149         System.out.println("删除下标0结果:"+lrem+"   |"+jedis.lrange("users",0,-1));
    150         //删除区间之外的值
    151 //        jedis.ltrim("users",1,2);
    152         //出栈
    153         String users2 = jedis.lpop("users");
    154         System.out.println("左出栈:"+users2+"  |"+jedis.lrange("users",0,-1));
    155         String users3 = jedis.rpop("users");
    156         System.out.println("右出栈:"+users3+"  |"+jedis.lrange("users",0,-1));
    157 
    158         jedis.del("users");
    159         System.out.println(jedis.lrange("users",0,-1));
    160     }
    161 
    162     /**
    163      * jedis set
    164      */
    165     @Test
    166     public void testSet(){
    167         //添加
    168         jedis.sadd("user","miao");
    169         jedis.sadd("user","rui");
    170         jedis.sadd("user","feng");
    171         jedis.sadd("user","ming");
    172         jedis.sadd("user","hong");
    173         jedis.sadd("user","xing");
    174         //查看
    175         Set<String> user = jedis.smembers("user");
    176         System.out.println("set:   "+user);
    177         //移除
    178         jedis.srem("user","miao");
    179         System.out.println("移除后: "+jedis.smembers("user"));
    180         //判断是否存在
    181         Boolean is = jedis.sismember("user", "rui");
    182         System.out.println("rui是否存在: "+is);
    183         //随机取出一个
    184         String one = jedis.srandmember("user");
    185         System.out.println(one);
    186         System.out.println(jedis.srandmember("user",2));
    187         //返回个数
    188         Long count = jedis.scard("user");
    189         System.out.println("user个数:"+count);
    190 
    191         jedis.del("user");
    192 
    193     }
    194 
    195     /**
    196      * zset
    197      * 有序的set
    198      */
    199     @Test
    200     public void testZset(){
    201         jedis.flushDB();
    202         //添加
    203         jedis.zadd("zkey",12.1,"十二");
    204         jedis.zadd("zkey",11.1,"11");
    205         jedis.zadd("zkey",21.1,"20");
    206         jedis.zadd("zkey",41.1,"41");
    207         jedis.zadd("zkey",4,"4");
    208         //查看
    209         Set<String> zkey = jedis.zrange("zkey", 0, -1);
    210         System.out.println("可以看到是以score排序的:"+zkey);
    211     }
    212 
    213     /**
    214      * 排序
    215      */
    216     @Test
    217     public void testSort(){
    218         jedis.del("list");
    219         jedis.rpush("list","1");
    220         jedis.rpush("list","4");
    221         jedis.rpush("list","2");
    222         jedis.rpush("list","20");
    223         jedis.rpush("list","5");
    224         jedis.rpush("list","6");
    225         jedis.rpush("list","67");
    226         System.out.println(jedis.lrange("list",0,-1));
    227         System.out.println("排序:"+jedis.sort("list"));
    228         System.out.println("排序不影响原存储:"+jedis.lrange("list",0,-1));
    229     }
    230 
    231 
    232 
    233 }
  • 相关阅读:
    mybatis plus使用redis作为二级缓存
    netty无缝切换rabbitmq、activemq、rocketmq实现聊天室单聊、群聊功能
    netty使用EmbeddedChannel对channel的出入站进行单元测试
    记jdk1.8中hashmap的tableSizeFor方法
    Cannot find class: BaseResultMap
    windows下远程访问Redis,windows Redis绑定ip无效,Redis设置密码无效,Windows Redis 配置不生效,Windows Redis requirepass不生效,windows下远程访问redis的配置
    学习记录
    eclipse的注释
    转:聊聊同步、异步、阻塞与非阻塞
    点滴笔记(二):利用JS对象把值传到后台
  • 原文地址:https://www.cnblogs.com/woshimrf/p/5204250.html
Copyright © 2011-2022 走看看