首页 > 数据库 >E028Web学习笔记-Redis

E028Web学习笔记-Redis

时间:2023-02-22 17:32:27浏览次数:66  
标签:set Redis redis 笔记 E028Web jedis value key


一、概述

1、简介

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

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

 

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

关系型数据库:

1、数据之间有关联关系;
2、数据存储在电脑硬盘文件上;

非关系型数据库:

1、数据之间没有关联关系;
2、数据存储在电脑内存上;

 

3、问题

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

解决方案:

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

 

二、Redis下载安装和简介

下载地址:

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

安装:

直接解压即可;

E028Web学习笔记-Redis_redis

重要文件简介:

redis.windows.conf:配置文件;

redis-server.exe:服务器端;

redis-cli.exe:客户端;

 

三、命令操作

1、Redis的数据结构

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

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

1、字符串类型:string
2、哈希类型:hash
3、列表类型:list
-- 列表允许重复,有序;
4、集合类型:set
-- 集合不允许重复,无序;
5、有序集合类型:sortedset
-- 集合不允许重复,有序;

2、字符串类型

存储

set key value

获取

get key

删除

del key

代码演示:

E028Web学习笔记-Redis_数据_02

 

3、哈希类型

存储

hset key field value

获取

hget key field

删除

hdel key field

代码演示

E028Web学习笔记-Redis_Redis_03

 

4、列表类型(list)

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

存储

1、将元素添加到列表左边:lpush key value;
2、将元素添加到列表右边:rpush key value;

获取

1、获取一个范围的元素:lrange key start end
-- 获取所有start end是0 -1

删除

1、删除列表最左边的元素并将该元素返回:lpop key
2、删除列表最右边的元素并将该元素返回:rpop key

代码演示

E028Web学习笔记-Redis_redis_04

 

5、集合类型set

存储

sadd key value

获取

smembers key:获取set集合的所有元素;

删除

srem key value:删除set集合中的某个元素;

代码演示

E028Web学习笔记-Redis_数据_05

 

6、有序集合类型sorted set

存储

zadd key score value:score分数,元素按照分数大小排序;

获取

查询某一范围的元素:zrange key start end
-- 获取所有start end是0 -1

删除

zrem key value:删除某一元素

代码演示

E028Web学习笔记-Redis_Redis_06

 

7、通用命令

1、查询所有的键:keys *
2、获取键对应的数据类型:type key
3、删除指定的键值对:del key

 

四、持久化

1、说明

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

 

2、两种持久化机制

RDB

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

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

AOF

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

3、EDB(有可能丢失数据)

使用步骤

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

编辑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

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

D:\MySoft\Redis\Redis-x64-3.0.504>redis-server.exe redis.windows.conf

 

4、AOF(影响性能)

使用步骤

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

1、开关
默认:appendonly no(关闭AOF)
改成:appendonly yes(开启AOF)
2、频率
appendfsync always:每次操作进行持久化;
appendfsync everysec:(默认)每秒进行持久化;
appendfsync no:不进行持久化;

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

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​

第二步:获取连接;

第三步:进行操作;

第四步:关闭连接;

代码演示

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();
}
}

运行结果(存储数据成功了)

E028Web学习笔记-Redis_Redis_07

 

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

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

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

补充:

setex(String key, int seconds, String value):可以指定键值对保存的时间,过时之后自动删除;

 

六、Jedis连接池(JedisPool)

1、使用步骤

第一步:创建JedisPool对象;

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

第三步:使用jedis;

第四步:归还jedis;

代码演示

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();
}
}

 

 

 

 

 

标签:set,Redis,redis,笔记,E028Web,jedis,value,key
From: https://blog.51cto.com/u_13272819/6079272

相关文章

  • Android笔记--监听短信内容
    监听短信内容就比如说是在我们用一个软件需要使用“获取验证码”的功能时,能够跟短信的验证码互通,实现较为完整的登录功能;监听短信内容主要是利用了contentObserver实现相......
  • 主流的NOSQL产品 redis概述
    主流的NOSQL产品键值(key-Value)存储数据库相关产品:TokyoCabinet/TyrantRedisVoldemortBerkeleyDB典型应用:内容缓存只要用于处理大量数据的......
  • E002Web学习笔记-CSS
    目录一、CSS概述1、CSS的作用2、什么是CSS3、CSS控制样式的好处4、CSS的使用方式①内联样式(不推荐使用)——作用于当前标签②内部样式——作用于当前html文件③外......
  • E001Web学习笔记-HTML
    一、HTML概述1、简介超文本标记语言,是最基本的网页开发语言;标记语言不是编程语言,没有什么逻辑性; 2、概述①html文档后缀名:.html或者.htm;②......
  • C002Android学习笔记-初级控件(二)
    一、简单控件1、文本视图TextView常用设置:①设置文本内容:xml中——text;代码中——setText;②设置文本颜色:xml中——textColor;代码中——setTe......
  • C003Android学习笔记-初级控件(三)
    一、图形基础1、图形Drawable概述:Android把所有显示出来的图形都抽象为Drawable(可绘制的),这里的图形不止是图片,还包括色块、画板、背景等;引用Dr......
  • C004Android学习笔记-中级控件(一)
    一、RelativeLayout相对布局1、概述①RelativeLayout下级视图的位置是相对位置,得有具体发参照物才能确定最终位置;②如果不指定下级视图的参照物......
  • 《分布式技术原理与算法解析》学习笔记Day19
    分布式通信:消息队列什么是消息队列?队列是一种具有先进先出特点的数据结构,消息队列是基于队列实现的、存储具有特定格式的消息数据。消息以特定格式放入这个队列的尾部后......
  • E013Web学习笔记-Request和Respons(一)
    一、Request原理和继承体系1、原理第一步:用户访问url,浏览器向服务器发出请求,请求携带着请求消息数据;第二步:Tomcat服务器会根据请求url中的资源......
  • E010Web学习笔记-Tomcat
    一、web相关概念回顾1、软件架构C/S架构:客户端/服务器端;B/S架构:浏览器/服务端;浏览器内含静态资源解析引擎;浏览器请求数据,服务器响应来自浏览器的请求; 2、资源......