Redis快速入门

1. Redis介绍

image-20240716105101616

image-20240716105256515

2. Redis安装

CentOS+VMware下载资源已经提供
链接:https://pan.quark.cn/s/220b85d017e2

3. Redis启动与配置

守护进程方式启动Redis

image-20240716110718389

image-20240716144850924

打开redis配置文件

将daemonize no 改为daemonize yes

这样redis启动以后在后台以服务形式来出现

image-20240716145714718

Redis常用基本配置

image-20240716145841419

4. Redis通用命令

image-20240717103842014

image-20240717103832372

5. 几种Redis常见类型

image-20240717103741209

image-20240717103747838

image-20240717103755563

image-20240717104029047

image-20240717103814953

image-20240717103936051

image-20240717104002051

image-20240717104530428

image-20240717104550612

Set使用示例:

image-20240717105218389

Zset使用示例:

image-20240717105612479

6. Jedis的使用入门

image-20240717105721521

image-20240717110024650

protected-mode yes改为no关闭保护模式。

bind 127.0.0.1 改为0.0.0.0 所有ip主机都可访问进来

image-20240717110505939

设置防火墙,让6379产生的所有数据进行通行

红线为这台centOs的ip

image-20240717110631191

最好重启一下虚拟机,保证这些配置生效。(我就是在这卡了很久,一直找不到问题,最后重启解决的)

package com.imooc.jedis;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JedisTestor {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.187.128", 6379);
        try {
            System.out.println("====" + jedis.ping());     // 如果连接成功,就会输出pong
            System.out.println("连接成功");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedis.close();
        }
    }
}

image-20240717123019137

7. Jedis操作Hash类型

package com.imooc.jedis;

import redis.clients.jedis.Jedis;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JedisTestor {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.187.128", 6379);
        try {
            System.out.println("=============" + jedis.ping());     // 如果连接成功,就会输出pong
            System.out.println("连接成功");
            jedis.select(3);
            //字符串
            jedis.set("sn","7781-9938");
            String sn = jedis.get("sn");
            System.out.println(sn);
            jedis.mset(new String[]{"title","奶粉","num","20"});
            List<String> mget = jedis.mget(new String[]{"title", "num"});
            System.out.println(mget);
            //Hash
            jedis.hset("student:3312","name","小明");
            String name = jedis.hget("student:3312", "name");
            System.out.println(name);
            Map<String,String> studentMap = new HashMap<>();
            studentMap.put("name","李兰");
            studentMap.put("age","18");
            studentMap.put("id","3313");
            jedis.hmset("student:3313",studentMap);
            Map<String, String> stringMap = jedis.hgetAll("student:3313");
            System.out.println(stringMap);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedis.close();
        }
    }
}

8. Jedis操作List类型

//List
jedis.del("letter");
jedis.rpush("letter",new String[]{"d","e","f"});
jedis.lpush("letter",new String[]{"c","b","a"});
jedis.lpop("letter");
jedis.rpop("letter");
List<String> letter = jedis.lrange("letter", 0, -1);
System.out.println(letter);

9. 利用Jedis缓存数据

存进去

package com.imooc.jedis;

import com.alibaba.fastjson.JSON;
import redis.clients.jedis.Jedis;

import java.util.ArrayList;
import java.util.List;

public class CacheSample {
    public CacheSample (){

        Jedis jedis = new Jedis("192.168.187.128", 6379);
        try {
            List<Goods> goodsList = new ArrayList<>();
            goodsList.add(new Goods(8818,"红富士"," ",3.5f));
            goodsList.add(new Goods(8819,"进口橙子"," ",2f));
            goodsList.add(new Goods(8820,"大蓝莓"," ",8f));
            //在redis中以什么形式保存这些数据呢?在这里都是放在Java中的一个一个二进制对象,以何种方式进行序列化呢?
            //使用jason 把这些序列化为jason字符串,要用的时候再进行还原
            jedis.select(4);
            for (Goods goods : goodsList){
                String json = JSON.toJSONString(goods);
                System.out.println(json);
                String key = "goods:"+goods.getGoodId();
                jedis.set(key,json);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            jedis.close();
        }

    }

    public static void main(String[] args) {
        new CacheSample();
    }
}

image-20240717124305622

取出来

package com.imooc.jedis;

import com.alibaba.fastjson.JSON;
import redis.clients.jedis.Jedis;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class CacheSample {
    public CacheSample (){

        Jedis jedis = new Jedis("192.168.187.128", 6379);
        try {
            List<Goods> goodsList = new ArrayList<>();
            goodsList.add(new Goods(8818,"红富士"," ",3.5f));
            goodsList.add(new Goods(8819,"进口橙子"," ",2f));
            goodsList.add(new Goods(8820,"大蓝莓"," ",8f));
            //在redis中以什么形式保存这些数据呢?在这里都是放在Java中的一个一个二进制对象,以何种方式进行序列化呢?
            //使用jason 把这些序列化为jason字符串,要用的时候再进行还原
            jedis.select(4);
            for (Goods goods : goodsList){
                String json = JSON.toJSONString(goods);
                System.out.println(json);
                String key = "goods:"+goods.getGoodId();
                jedis.set(key,json);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            jedis.close();
        }

    }

    public static void main(String[] args) {
        new CacheSample();
        System.out.println("请输入要查询的商品编号:");
        String goodsId = new Scanner(System.in).next();
        Jedis jedis = new Jedis("192.168.187.128", 6379);
        try {
            jedis.select(4);
            String key = "goods:"+goodsId;
            if (jedis.exists(key)){
                String json = jedis.get(key);
                System.out.println(json);
                //将json转换为对象
                Goods goods = JSON.parseObject(json, Goods.class);
                System.out.println(goods);
            }else {
                System.out.println("输入的商品编号不存在");
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            jedis.close();
        }
    }
}
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值