Redis入门自学笔记jedis

一、Redis

1.开启redis

在这里插入图片描述可以点击根目录下的redis-server启动也可以在cmd控制面板中输入redis-server.exe ./redis.windows.conf来启动
在这里插入图片描述
在这里插入图片描述

看到如图所示视图这开启成功(使用cmd和配置文件的方法开启redis服务时,可以同时开启多个端口号不同的redis服务)

2.在idea中引入依赖

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.2.3</version>
</dependency>

3.创建测试类并进行一系列操作

public void getJedis(){
 //创建jedis配置类对象
 JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    
 //设置最大共享数量
 jedisPoolConfig.setMaxIdle(10);
    
 //创建最大连接数量
 jedisPoolConfig.setMaxTotal(30);
    
 //创建连接池对象
 JedisPool jedisPool = new JedisPool(jedisPoolConfig,"127.0.0.1",6379);
    
 //获取连接对象操作数据
 Jedis jedis = jedisPool.getResource();
    
//进行字符串存取操作
  jedis.set("pool","sssss");
  jedis.get("pool");
    
  //创建一个map集合
  HashMap<String, String> map = new HashMap<>();
  map.put("name","yaya");
  map.put("age","20");
    
  //进行哈希表存入操作
  jedis.hset("person",map);
    
  //去除哈希表单条记录
  String name = jedis.hget("person", "name");
    
  //取出整个哈希表
  Map<String, String> person = jedis.hgetAll("person");
    
  //右压缩作为例子,左压缩只需将lpush和lpop的首字母改为r
  //进行右压缩存入
  jedis.lpush("list","name","heizi");
  jedis.lpush("list","age","23");
    
  //进行做弹出取值,从左边依次弹出(将元素取出并删除)
  String list = jedis.lpop("list");
    
  //取出所有右压缩的值(左右压缩通用)
  List<String> list1 = jedis.lrange("list", 0, -1);
    
  //操作set类型
  jedis.sadd("setList","aaa","bbb","ccc");
    
  //将set类型存入的对应的键的所有值取出
  Set<String> setList = jedis.smembers("setList");
    
  //存入zSet类型的值(排序set,排序的依据字段存在score属性中:第二个属性)
  jedis.zadd("sortSet",20,"张三");
  jedis.zadd("sortSet",21,"李四");
  jedis.zadd("sortSet",18,"王五");
    
  //将所有zSet类型存入的值取出(取出后已经排好序)
  List<String> sortSet = jedis.zrange("sortSet", 0, -1);
    
  //关闭jedis
  jedis.close();
}

4.封装Redis (将上述代码的公共部分封装)

4.1创建jedis.properties文件

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

4.2创建jedis工具类

public class JedisUtils {
    private static JedisPool jedisPool = null;

    static {
        InputStream resource = JedisUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
        Properties properties = new Properties();
        try {
            properties.load(resource);
            //创建配置类
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            
            //设置最大共享数量
 jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle")));
            
            //创建最大连接数量
 jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
            
            //创建连接对象
            jedisPool = new JedisPool(jedisPoolConfig, properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));

        } catch (IOException e) {
            throw new RuntimeException("创建连接,获取Jedis失败");
        }
    }

    /**
     * 创建并返回Jedis对象类似Jedis对象工厂
     *
     * @return返回创建的Jedis对象
     */
    public static Jedis getJedis() {
        //返回获取的连接对象操作数据
        return jedisPool.getResource();
    }

    /**
     * 关闭jedis对象
     *
     * @param jedis 需要关闭的jedis对象
     */
    public static void jedisClose(Jedis jedis) {
        jedis.close();
    }
}

4.3使用工具类

public class JedisTest {
    public void testJedis() {
        Jedis jedis = JedisUtils.getJedis();
        //进行字符串存取操作
        jedis.set("pool", "sssss");
        jedis.get("pool");
        //创建一个map集合
        HashMap<String, String> map = new HashMap<>();
        map.put("name", "yaya");
        map.put("age", "20");
        //进行哈希表存入操作
        jedis.hset("person", map);
        //去除哈希表单条记录
        String name = jedis.hget("person", "name");
        //取出整个哈希表
        Map<String, String> person = jedis.hgetAll("person");
        //右压缩作为例子,左压缩只需将lpush和lpop的首字母改为r
        //进行右压缩存入
        jedis.lpush("list", "name", "heizi");
        jedis.lpush("list", "age", "23");
        //进行做弹出取值,从左边依次弹出(将元素取出并删除)
        String list = jedis.lpop("list");
        //取出所有右压缩的值(左右压缩通用)
        List<String> list1 = jedis.lrange("list", 0, -1);
        //操作set类型
        jedis.sadd("setList", "aaa", "bbb", "ccc");
        //将set类型存入的对应的键的所有值取出
        Set<String> setList = jedis.smembers("setList");
        //存入zSet类型的值(排序set,排序的依据字段存在score属性中:第二个属性)
        jedis.zadd("sortSet", 20, "张三");
        jedis.zadd("sortSet", 21, "李四");
        jedis.zadd("sortSet", 18, "王五");
        //将所有zSet类型存入的值取出(取出后已经排好序)
        List<String> sortSet = jedis.zrange("sortSet", 0, -1);
        //关闭jedis
        JedisUtils.jedisClose(jedis);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值