前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >E028Web学习笔记-Redis

E028Web学习笔记-Redis

作者头像
訾博ZiBo
发布2025-01-06 14:45:39
发布2025-01-06 14:45:39
8200
代码可运行
举报
运行总次数:0
代码可运行

一、概述

1、简介

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的NOSQL系列的非关系型key-value数据库;

数据存储在内存中的数据库;

2、关系型数据库与非关系型数据库

关系型数据库:
代码语言:javascript
代码运行次数:0
运行
复制
1、数据之间有关联关系;
2、数据存储在电脑硬盘文件上;
非关系型数据库:
代码语言:javascript
代码运行次数:0
运行
复制
1、数据之间没有关联关系;
2、数据存储在电脑内存上;

3、问题

当经常查询一些不太经常变化的数据,操作关系型数据库非常耗时!

解决方案:

使用缓存思想解决此问题,第一次查询数据的时候从数据库查询,然后放入缓存,再返回查询结果, 等以后查询的时候直接在缓存里面返回结果即可。

二、Redis下载安装和简介

下载地址:

https://github.com/MicrosoftArchive/redis/releases

安装:

直接解压即可;

重要文件简介:

redis.windows.conf:配置文件;

redis-server.exe:服务器端;

redis-cli.exe:客户端;

三、命令操作

1、Redis的数据结构

key-value:键值对结构的数据;

其中key是字符串,value有五种数据类型:

代码语言:javascript
代码运行次数:0
运行
复制
1、字符串类型:string
2、哈希类型:hash
3、列表类型:list
-- 列表允许重复,有序;
4、集合类型:set
-- 集合不允许重复,无序;
5、有序集合类型:sortedset
-- 集合不允许重复,有序;

2、字符串类型

存储
代码语言:javascript
代码运行次数:0
运行
复制
set key value
获取
代码语言:javascript
代码运行次数:0
运行
复制
get key
删除
代码语言:javascript
代码运行次数:0
运行
复制
del key
代码演示:

3、哈希类型

存储
代码语言:javascript
代码运行次数:0
运行
复制
hset key field value
获取
代码语言:javascript
代码运行次数:0
运行
复制
hget key field
删除
代码语言:javascript
代码运行次数:0
运行
复制
hdel key field
代码演示

4、列表类型(list)

可以添加一个元素到列表的头部(左边)或者尾部(右边);

存储
代码语言:javascript
代码运行次数:0
运行
复制
1、将元素添加到列表左边:lpush key value;
2、将元素添加到列表右边:rpush key value;
获取
代码语言:javascript
代码运行次数:0
运行
复制
1、获取一个范围的元素:lrange key start end
-- 获取所有start end是0 -1
删除
代码语言:javascript
代码运行次数:0
运行
复制
1、删除列表最左边的元素并将该元素返回:lpop key
2、删除列表最右边的元素并将该元素返回:rpop key
代码演示

5、集合类型set

存储
代码语言:javascript
代码运行次数:0
运行
复制
sadd key value
获取
代码语言:javascript
代码运行次数:0
运行
复制
smembers key:获取set集合的所有元素;
删除
代码语言:javascript
代码运行次数:0
运行
复制
srem key value:删除set集合中的某个元素;
代码演示

6、有序集合类型sorted set

存储
代码语言:javascript
代码运行次数:0
运行
复制
zadd key score value:score分数,元素按照分数大小排序;
获取
代码语言:javascript
代码运行次数:0
运行
复制
查询某一范围的元素:zrange key start end
-- 获取所有start end是0 -1
删除
代码语言:javascript
代码运行次数:0
运行
复制
zrem key value:删除某一元素
代码演示

7、通用命令

代码语言:javascript
代码运行次数:0
运行
复制
1、查询所有的键:keys *
2、获取键对应的数据类型:type key
3、删除指定的键值对:del key

四、持久化

1、说明

Redis是一个内存数据库,数据临时存放在内存中,我们可以将数据保存到硬盘中;

2、两种持久化机制

RDB

默认,不需要进行配置,默认使用这种机制;

在一定的间隔时间中,检测key的变化情况,然后持久化数据;

AOF

日志操作记录方式,可以记录每一条命令的操作,可以在每次操作后,持久化数据;

3、EDB(有可能丢失数据)
使用步骤

第一步:编辑redis.windows.conf文件

代码语言:javascript
代码运行次数:0
运行
复制
编辑redis.windows.conf文件:(将下面的数值进行修改即可)
#   after 900 sec (15 min) if at least 1 key changed
15分钟后,至少有1个keys发生了改变,就进行保存
save 900 1

#   after 300 sec (5 min) if at least 10 keys changed
5分钟后,至少有10个keys发生了改变,就进行保存
save 300 10

#   after 60 sec if at least 10000 keys changed
1分钟后,至少有10000个keys发生了改变,就进行保存
save 60 10000

第二步:重启服务器,指定配置文件

代码语言:javascript
代码运行次数:0
运行
复制
D:\MySoft\Redis\Redis-x64-3.0.504>redis-server.exe redis.windows.conf

4、AOF(影响性能)

使用步骤

第一步:编辑redis.windows.conf文件

代码语言:javascript
代码运行次数:0
运行
复制
1、开关
默认:appendonly no(关闭AOF)
改成:appendonly yes(开启AOF)
2、频率
appendfsync always:每次操作进行持久化;
appendfsync everysec:(默认)每秒进行持久化;
appendfsync no:不进行持久化;

第二步:重启服务器,指定配置文件

代码语言:javascript
代码运行次数:0
运行
复制
D:\MySoft\Redis\Redis-x64-3.0.504>redis-server.exe redis.windows.conf

五、Java代码操作Redis(使用Jedis)

1、Jedis简介

使用Java操作Redis的工具;

2、快速入门

使用步骤

第一步:下载jedis相关,导入jar包;

下载地址(两个文件):

https://mvnrepository.com/artifact/redis.clients/jedis

https://mvnrepository.com/artifact/org.apache.commons/commons-pool2

第二步:获取连接;

第三步:进行操作;

第四步:关闭连接;

代码演示
代码语言:javascript
代码运行次数:0
运行
复制
package redis;

import redis.clients.jedis.Jedis;

public class MyRedis {
    public static void main(String[] args) {
        //1、获取连接
        Jedis jedis = new Jedis("localhost",6379);
        //2、进行操作
        jedis.set("name","zibo");
        //3、关闭连接
        jedis.close();
    }
}
运行结果(存储数据成功了)

3、操作String、hash、list、set和sorted set

与命令行操作极为类似,不再演示;

文档教程地址:https://www.runoob.com/redis/redis-java.html

补充:
代码语言:javascript
代码运行次数:0
运行
复制
setex(String key, int seconds, String value):可以指定键值对保存的时间,过时之后自动删除;

六、Jedis连接池(JedisPool)

1、使用步骤

第一步:创建JedisPool对象;

第二步:调用getResource()方法获取Jedis连接;

第三步:使用jedis;

第四步:归还jedis;

代码演示
代码语言:javascript
代码运行次数:0
运行
复制
package redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class MyRedis {
    public static void main(String[] args) {
        //第一步:创建JedisPool对象;
        //无参,默认参数
        JedisPool pool = new JedisPool();
        //带参
        //1、创建配置对象;
//        JedisPoolConfig config = new JedisPoolConfig();
//        config.setMaxTotal(50);
//        config.setMaxIdle(10);
//        JedisPool pool = new JedisPool(config,"localhost",6379);
        //第二步:调用getResource()方法获取Jedis连接;
        Jedis jedis = pool.getResource();
        //第三步:使用jedis
        jedis.set("name","zibo");
        //第四步:归还jedis
        jedis.close();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
    • 1、简介
    • 2、关系型数据库与非关系型数据库
      • 关系型数据库:
      • 非关系型数据库:
    • 3、问题
      • 解决方案:
  • 二、Redis下载安装和简介
    • 下载地址:
    • 安装:
    • 重要文件简介:
  • 三、命令操作
    • 1、Redis的数据结构
    • 2、字符串类型
      • 存储
      • 获取
      • 删除
      • 代码演示:
    • 3、哈希类型
      • 存储
      • 获取
      • 删除
      • 代码演示
    • 4、列表类型(list)
      • 存储
      • 获取
      • 删除
      • 代码演示
    • 5、集合类型set
      • 存储
      • 获取
      • 删除
      • 代码演示
    • 6、有序集合类型sorted set
      • 存储
      • 获取
      • 删除
      • 代码演示
    • 7、通用命令
  • 四、持久化
    • 1、说明
    • 2、两种持久化机制
      • RDB
      • AOF
      • 3、EDB(有可能丢失数据)
      • 使用步骤
    • 4、AOF(影响性能)
      • 使用步骤
  • 五、Java代码操作Redis(使用Jedis)
    • 1、Jedis简介
    • 2、快速入门
      • 使用步骤
      • 代码演示
      • 运行结果(存储数据成功了)
    • 3、操作String、hash、list、set和sorted set
      • 补充:
  • 六、Jedis连接池(JedisPool)
    • 1、使用步骤
      • 代码演示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档