zoukankan      html  css  js  c++  java
  • redis环境搭建和java应用

    ####下载 ```bash wget http://download.redis.io/releases/redis-4.0.9.tar.gz ``` ####解压移动 tar -xvf redis-4.0.9.tar.gz mv redis-4.0.9/ /usr/local/ ####编译测试 sudo make test ####启动服务 redis-server redis-server & ####停止 redis-cli shutdown ####查看版本 redis-server -v ####查看redis运行状态 ps aux|grep redis lsof -i tcp:6379
    ####登录redis cd /usr/local/redis-4.0.9 redis-cli -h 127.0.0.1 -p 6379 ####退出连接 quit ####服务器的信息和统计 info ####测试服务器是否存活 ping ####设置key set foo bar ####取值 get foo ####判断某个key是否存在 exists foo ####删除key del foo ####key类型 type foo
    ####加载源 ```java redis.clients jedis 2.8.2 ```

    示例

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import java.util.List;
    import java.util.Set;
    import java.util.Iterator;
    import redis.clients.jedis.Jedis;
    
    @Controller
    public class RedisController {
      public static void main(String[] args) {
            //连接本地的 Redis 服务
            Jedis jedis = new Jedis("localhost");
            System.out.println("连接成功");
            //查看服务是否运行
            System.out.println("服务正在运行: " + jedis.ping());
            // 清空数据 
            System.out.println("清空库中所有数据:" + jedis.flushDB()); 
            
            //key-value
            System.out.println("============================================");
            jedis.set("a", "day1"); // 存数据
            System.out.println("a的value为" + jedis.get("a")); // 取数据
            jedis.append("a", "-day2");
            System.out.println("追加后a的value为" + jedis.get("a"));
            
            // 输出系统中所有的key
            System.out.println("所有的redis-key为:");
            Set<String> keys = jedis.keys("*");
            Iterator<String> it=keys.iterator();
            while(it.hasNext()){
                String key = it.next();   
                System.out.println(key); 
            }
            
           //判断key是否存在,存在则删除
           if(jedis.exists("a")){
                jedis.del("a");
                System.out.println("key为a的值存在已删除");
           }else{
                System.out.println("key为a的值不存在");
           }
           
           //list,l对应左边队头,r对应右边队尾
           System.out.println("============================================");
           jedis.del("list1");
           //lpush是在队列头部插入元素,rpush是在尾部插入元素
           jedis.lpush("list1", "day1");
           jedis.lpush("list1", "day2");
           jedis.lpush("list1", "day3");
           jedis.lpush("list1", "day4");
           System.out.println("list:" + jedis.lrange("list1", 0, -1));
           System.out.println("list长度为:" + jedis.llen("list1"));
           
           List<String> list = jedis.lrange("list1", 0 ,-1);
           for(int i=0; i<list.size();i++){
              System.out.println("列表为:" + list.get(i));
           }
           //删除指定的值
           jedis.lrem("list1", 2, "day2");
           System.out.println("删除后:" + jedis.lrange("list1", 0, -1));
           //lpop是在队列头部移除元素,rpop是在尾部移除元素
           jedis.lpop("list1");
           System.out.println("lpop队头移除元素后" + jedis.lrange("list1", 0, -1));
           jedis.rpop("list1");
           System.out.println("rpop从队尾移除元素后" + jedis.lrange("list1", 0, -1));
           
           //set集合(无序)
           System.out.println("============================================");
           jedis.del("dayset");
           jedis.sadd("dayset", "day1");
           jedis.sadd("dayset", "day2");
           jedis.sadd("dayset", "day3");
           System.out.println("dayset无序集合中的全部元素" + jedis.smembers("dayset"));
           Set<String>  set = jedis.smembers("dayset");
           Iterator<String> itset = set.iterator();
           while(itset.hasNext()){
                Object obj = itset.next();
                System.out.println(obj);
           }
           
           //zset有序集合
           System.out.println("============================================");
           jedis.zadd("zsetday" , 3 , "day1");
           jedis.zadd("zsetday" , 2 , "day2");
           jedis.zadd("zsetday" , 1 , "day3");
           System.out.println("有序集合中的所有元素为:" + jedis.zrange("zsetday", 0, -1));
           System.out.println("有序集合中的元素个数为:" + jedis.zcard("zsetday"));
           System.out.println("day3的权重为:" + jedis.zscore("zsetday", "day3"));
           
           //hash
           System.out.println("============================================");
           jedis.hset("hashday", "day1", "111");
           jedis.hset("hashday", "day2", "222");
           jedis.hset("hashday", "day3", "333");
           System.out.println("hash中所有的key为" + jedis.hkeys("hashday"));
           System.out.println("hash中所有的value为:" + jedis.hvals("hashday"));
           jedis.hdel("hashday", "day2");
           System.out.println("删除day2后所有的value为:" + jedis.hvals("hashday"));
           System.out.println("删除day2后key为day2是否存在:" + jedis.hexists("hashday", "day2"));
           System.out.println("key为day3的value为:" + jedis.hget("hashday", "day3"));
           
        }
    }
    

    输出

    连接成功
    服务正在运行: PONG
    清空库中所有数据:OK
    ============================================
    a的value为day1
    追加后a的value为day1-day2
    所有的redis-key为:
    a
    key为a的值存在已删除
    ============================================
    list:[day4, day3, day2, day1]
    list长度为:4
    列表为:day4
    列表为:day3
    列表为:day2
    列表为:day1
    删除后:[day4, day3, day1]
    lpop队头移除元素后[day3, day1]
    rpop从队尾移除元素后[day3]
    ============================================
    dayset无序集合中的全部元素[day2, day1, day3]
    day2
    day1
    day3
    ============================================
    有序集合中的所有元素为:[day3, day2, day1]
    有序集合中的元素个数为:3
    day3的权重为:1.0
    ============================================
    hash中所有的key为[day2, day3, day1]
    hash中所有的value为:[111, 222, 333]
    删除day2后所有的value为:[111, 333]
    删除day2后key为day2是否存在:false
    key为day3的value为:333
    
  • 相关阅读:
    省市级联
    innerText与innerHTML的区别
    使用代码提交表单
    Date的使用
    Array(数组)的使用
    [贪心]Rest Stops
    [数论][Miller_Rabin] Goldbach
    [简单思维题]Hoofball
    [数论][容斥原理]Co-prime
    [图论][二分图最大匹配]Courses
  • 原文地址:https://www.cnblogs.com/wanli002/p/10389126.html
Copyright © 2011-2022 走看看