Redis通用指令和Jedis使用

key通用指令

常用操作

  • del key 删除指定key
  • exists key 获取key是否存在
  • type key 获取key的类型

key 时效性控制

  • expire key seconds 设置过期时间
  • pexpire key milliseconds (毫秒版)
  • expireat key timestamp(使用时间戳版)
  • pexpireat key milliseconds-timestamp
  • ttl key 获取过期时间(不存在返回-2,永久返回-1)

  • pttl key (毫秒版)

  • persist key 将key从时效性转换为永久性

key 查询操作

  • keys pattern:查询符合条件的所有key,pattern的规则:
    • *匹配任意数量的任意符号
    • ?匹配一个任意符号
    • []匹配括号内的任意一个符号

key 其他操作

  • renane key newkey 重命名key
  • renamenx key newkey 如果新名字不存在才会重命名
  • sort 对集合中所有value排序,只能排list或set

数据库通用操作

redis为每个服务提供有16个数据库,编号从0到15,每个数据库之间的数据相互独立

  • select index 切换数据库
  • move key db 将某个键移入其他数据库中

  • dbsize 当前db键的个数

  • flushdb 清空当前数据库
  • flushall 清空所有数据库

Jedis

基本使用

方法名和指令名一致。

//1.连接redis
Jedis jedis = new Jedis("127.0.0.1", 6379);
//2.操作redis
jedis.set("name","rhett");
String name = jedis.get("name");
System.out.println(name);
//3.关闭连接
jedis.close();

注意方法的返回值

//1.连接redis
Jedis jedis = new Jedis("127.0.0.1", 6379);
//2.操作redis
//字符串
jedis.set("name","rhett");
String name = jedis.get("name");
//list
jedis.lpush("list1","a","b","c");
jedis.rpush("list1","d");
List<String> list1 = jedis.lrange("list1", 0, -1);
list1.forEach(e-> System.out.println(e));
//set
jedis.hset("hash1","a1","a1");
jedis.hset("hash1","a2","a2");
jedis.hset("hash1","a3","a3");
//hash
Map<String, String> hash1 = jedis.hgetAll("hash1");
hash1.forEach((k,v)-> System.out.println(k+":"+v));
Set<String> keys = jedis.keys("*");
keys.forEach(e-> System.out.println(e));
//set
jedis.sadd("set1","50");
jedis.sadd("set1","10");
jedis.sadd("set1","30");
Set<String> set1 = jedis.smembers("set1");
set1.forEach(e-> System.out.println(e));
//3.关闭连接
jedis.close();

incr操作返回的是Long

连接池

JedisPool:Jedis提供的连接池技术

基于连接池的工厂类的编写:

public class JedisUtils {
    private static JedisPool jp = null;
    private static String host;
    private static int port;
    private static int maxTotal;
    private static int maxIdle;
    static {
        ResourceBundle rb = ResourceBundle.getBundle("redis");
        host = rb.getString("redis.host");
        port = Integer.parseInt(rb.getString("redis.port"));
        maxTotal = Integer.parseInt(rb.getString("redis.maxTotal"));
        maxIdle = Integer.parseInt(rb.getString("redis.maxIdle"));
        JedisPoolConfig jpc = new JedisPoolConfig();
        jpc.setMaxTotal(maxTotal);
        jpc.setMaxIdle(maxIdle);
        jp = new JedisPool(jpc,host,port);
    }
    public static Jedis getJedis(){
        return jp.getResource();
    }
}

redis.properties:

redis.host=127.0.0.1
redis.port=6379
redis.maxTotal=30
redis.maxIdle=10

Redis可视化管理工具

Redis Desktop Manager

原创文章,作者:彭晨涛,如若转载,请注明出处:https://www.codetool.top/article/redis%e9%80%9a%e7%94%a8%e6%8c%87%e4%bb%a4%e5%92%8cjedis%e4%bd%bf%e7%94%a8/