redis环境搭建和java应用

下载

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


加载源

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.8.2</version>
</dependency>

示例

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

猜你喜欢

转载自www.cnblogs.com/wanli002/p/10389126.html