Redis快速入门

前言

前面我们一直在学习Java相关的知识,但是最近我开始使用前面的知识写一个项目的时候发现一个问题,项目中使用了Redis。所以只能停下脚步返回来学习Redis。

学习内容

Redis介绍

前面我们也学过了一写关系型数据库,但是这些数据库都是关系型数据库,主要用于数据的持久化,数据存储在硬盘中。当数据量足够大的时候,数据存取就会受到限制。基于此情况下就诞生了Redis数据库。

  • Redis是Key-Value型NoSQL数据库
  • Redis将数据存储在内存中,同时也能持久化到磁盘
  • Redis常用于缓存数据,利用内存的高效提高程序的处理速度

Redis特点

  • 速度快
  • 广泛的语言支持
  • 持久化
  • 多种数据结构
  • 主从复制(多个Redis数据库数据同步)
  • 分布式与高可用

Redis安装

Redis官网

Linux环境下安装

这里我们可以直接看一下前面关于Linux的文章关于安装卸载应用程序的部分,实际就是在Linux新建一个文件夹,然后使用编译安装的方法安装即可。
Redis快速入门_第1张图片
Redis快速入门_第2张图片

Windows环境下安装

这里因为我的电脑上已经安装过,所以不方便截图演示,这里给大家找了一篇博客,基本按这个来就可以安装完成了!!!
windos安装redis
Redis快速入门_第3张图片

守护进程方式启动Redis

我们安装完成以后启动Redis,但是当我们关闭窗口的时候Redis的服务就会跟着停止,作为服务端,这不是我们想要的,所以我们采用守护进程的方式运行我们的Redis。

  1. 在redis目录下输入vim redis.conf;
    Redis快速入门_第4张图片
  2. 将如下这个no改为yes后保存退出;
    Redis快速入门_第5张图片
  3. 使用./src/redis-server redis.conf启动Redis服务;
    Redis快速入门_第6张图片
  4. 使用netstat -tulpn查看当前进程;
    Redis快速入门_第7张图片
  5. 验证Redis是否后台运行,关闭当前的终端窗口,在新的终端窗口输入查看进程;
    Redis快速入门_第8张图片
  6. 如何关闭后台运行的Redis进程;

简单粗暴

kill -9 PID号

Redis快速入门_第9张图片

Redis常用基本配置

  1. 进入src目录下;
    请添加图片描述
    Redis快速入门_第10张图片
    箭头指的这个就是Redis用于执行一系列的指令的!!

  2. 回到Redis目录下输入./src/redis-cli;(需要启动Redis)
    请添加图片描述
    ** ping测试提供服务**
    Redis快速入门_第11张图片
    其他的都是修改redis.conf内容的对应部分。

Redis通用命令

这部分真的没有什么诀窍,对着表格敲一遍,基本上就知道每一个命令是干什么的了!!!!!!

Redis快速入门_第12张图片

Redis常用数据类型

String(字符串类型)

String最大512MB,建议单个不要超过100kb。
Redis快速入门_第13张图片
Redis快速入门_第14张图片

Hash(Hash类型)

Hash类型用于存储结构化的数据!
Redis快速入门_第15张图片
Redis快速入门_第16张图片

List(列表类型)

List列表就是一系列字符串的“数组”,按照插入的顺序排序。

List列表的最大长度为2的32次方-1,可以包含40亿个元素。
Redis快速入门_第17张图片
Redis快速入门_第18张图片

Set(集合类型)

Set集合是字符串的无序集合,集合成员是唯一的。
Redis快速入门_第19张图片
Redis快速入门_第20张图片
Redis快速入门_第21张图片

Zset(有序集合类型)

Zset集合是字符串的有序集合,集合成员是唯一的。
Redis快速入门_第22张图片

Java与Redis

Jedis环境准备

        <dependency>
            <groupId>redis.clientsgroupId>
            <artifactId>jedisartifactId>
            <version>2.9.0version>
        dependency>

pom.xml文件加入依赖即可。

连接Redis

public class JedisTestor {
    public static void main(String[] args) {
        try (Jedis jedis = new Jedis("127.0.0.1", 6379)) {
            jedis.auth("123456");
            System.out.println("Redis连接成功!");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Java操作Redis

上面我们已经通过Java代码成功连接了我们的Redis,这里我们就来使用代码操作Redis数据库,具体的可以参见下面的代码,我只写了几个例子。使用的命令跟上面的命令行的时候是一模一样的!!!!

package com.five.jedis;

import redis.clients.jedis.Jedis;

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

/**
 * Description: 192.168.202.128
 *
 * @Author: kk(专业bug开发)
 * DateTime: 2022-03-13 23:57
 */
public class JedisTestor {
    public static void main(String[] args) {
        try (Jedis jedis = new Jedis("127.0.0.1", 6379)) {
            jedis.auth("123456");
            System.out.println("Redis连接成功!");
            jedis.select(1);
            //操作String类型
//            jedis.set("name", "小柯");
//            System.out.println(jedis.get("name"));
//            jedis.mset("age", "22", "sex", "男");
//            System.out.println(jedis.keys("*"));

            //操作Hash类型
//            Map userMap = new HashMap<>();
//            userMap.put("name", "小柯");
//            userMap.put("age", "22");
//            userMap.put("sex", "男");
//            jedis.hmset("student1", userMap);
//            Map umap = jedis.hgetAll("student1");
//            System.out.println(umap);

            //操作List
            jedis.rpush("letter", new String[]{"d", "e", "f"});
            jedis.rpush("letter", new String[]{"d", "r", "s"});
            List<String> letter = jedis.lrange("letter", 0, -1);
            System.out.println(letter);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Redis使用实例

我们这里模拟网站的商品信息,首先将商品信息存放进Redis中,然后再根据编号取出数据,过程中我们使用阿里巴巴的fastjson对数据进行JSON序列化。demo的目录结构如下:
Redis快速入门_第23张图片
Redis快速入门_第24张图片
请添加图片描述
这里我们仅仅是测试了三条数据,试想一下,如果是一个大型的电商网站,我们使用Redis存储数据的话这些数据存储在内存中,存取速度必然很快,对于系统性能提升作用明显!

总结

这篇文章前前后后耽误了一两个星期,因为中间有其他事耽误了,所以这篇文章一直是断断续续的在写,虽然没有很多内容,但是为了展示效果,上面的每一步都是亲自截的图,即使有些地方我可能已经很熟悉了,但是我还是写了出来,希望大家可以认真看完。

你可能感兴趣的:(redis,缓存,数据库)