大数据学习栈记——Redis安装及其使用

本文介绍NoSQL技术:Redis的安装及其使用。操作系统:Ubuntu24.04

Redis介绍

Redis是一个键值(key-value)存储系统,即键值对非关系型数据库,和Memcached类似,目前正在被越来越多的互联网公司采用。Redis作为一个高性能的键值数据库,不仅在很大程度上弥补了memcached这类键值存储的不足,而且在部分场合下可以对关系数据库起到很好的补充作用。Redis提供了Python、Ruby、Erlang、PHP客户端,使用很方便。

Redis支持存储的值(value)类型包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove以及取交集、并集和差集等丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,Redis中的数据都是缓存在内存中的,它会周期性地把更新的数据写入磁盘,或者把修改操作写入追加的记录文件;此外,Redis还实现了主从(master-slave)同步。

Redis安装

方法一是自己下载安装包

下载地址 https://redis.io/downloads/  ,找到下载链接。Redis有很多产品,如Redis Enterprise Software、Redis OSS & Stack、Redis Insight等,而我们要选择的是Redis downloads。然后再选择合适的版本。发现现在可用的redis是7.4版和7.8.4版

方法二是直接使用直接用apt命令进行安装

首先更新APT软件包列表:

sudo apt update

然后使用apt命令安装Redis服务端:

sudo apt install redis-server

启动Redis服务并设置开机启动:

sudo systemctl start redis-server

sudo systemctl enable redis-server

试了一下,启动redis用 sudo service redis start 也可以

验证Redis是否成功安装并运行:

redis-cli ping

如果一切正常,它将返回PONG。

至此,Redis已经安装完成,现在可以执行如下命令开启Redis服务器:

redis-server

这里显示使用apt安装的redis版本是7.0.15

Redis基本命令(shell模式)

我们借助redis客户端来完成redis的相关管理工作。

输入如下命令启动Redis客户端:

redis-cli

客户端连上服务器之后,会显示“127.0.0.1:6379>”的命令提示符信息,表示服务器的IP地址为127.0.0.1,端口为6379。

现在可以执行简单的操作,比如,设置键为”hello”,值为”world”,并且取出键为”hello”时对应的值。执行下列代码:

set hello world

get hello

Redis操作(shell模式)

我们借助redis客户端来完成redis的相关管理工作。Redis是一个键值对(key-value)数据库,value主要支持5种数据类型

  • 字符串 string
  • 哈希 hash
  • 列表list
  • 集合 set
  • 有序集合sorted set

假设有三个表,即Student、Course和SC,三个表的字段(列)和数据如图6-3所示。

Student表:

Redis数据库是以<key,value>的形式存储数据,把三个表的数据存入Redis数据库时,key和value的确定方法如下:

key=表名:主键值:列名

value=列值

例如,把每个表的第一行记录保存到Redis数据中,需要执行的命令如下:

set Student:95001:Sname liyong

set Course:1:Cname database

set SC:95001:1:Grade 92

新增键值对:

set Course:8:Cname algorithm

set Course:8:Ccredit 4

修改键值对:

get Course:8:Cname

set Course:8:Cname Bigdata

get Course:8:Cname

删除键值对:

get Course:8:Cname

del Course:8:Cname

del Course:8:Cname

Redis Java API编程

配置环境

我们继续在”bigdata1”项目中编写操作Redis的Java代码。

参考:

https://m.runoob.com/redis/redis-java.html

https://www.cnblogs.com/sss4/p/16359420.html

先去下面这个网站看看有哪些可用的版本,以及配置文件应该怎么写

https://mvnrepository.com/

输入”redis”后,找到很多包

根据教材,使用的应该是”Jedis”项目,打开该项目

里面有Maven的配置语句,等会儿我们要用

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->

<dependency>

    <groupId>redis.clients</groupId>

    <artifactId>jedis</artifactId>

    <version>5.1.2</version>

</dependency>

在IDEA中,打开pom.xml(在左边的树形菜单中),这个文件是Maven的核心配置文件,将代码复制进去,刷新

测试连接

首先新建一个Redis软件包,由于redis默认只允许从本地连接,还需要在Linux虚拟机上操作

修改/etc/redis/redis.conf

sudo vim /etc/redis/redis.conf

将bind 127.0.0.1 ::1修改为bind 0.0.0.0 ::1 protect-mode为no

新建一个类,测试

package redis;import redis.clients.jedis.Jedis;public class TestRedis {public static void main(String[] args) {//连接Redis 服务Jedis jedis = new Jedis("192.168.179.143", 6379);// 如果 Redis 服务设置了密码,需要下面这行,没有就不需要// jedis.auth("123456");System.out.println("连接成功");//查看服务是否运行System.out.println("服务正在运行: "+jedis.ping());}
}

操作5种数据类型

继续编写一个类,测试redis支持的5种数据类型:String、Hash、List、Set、Zset。代码如下:

package redis;import redis.clients.jedis.Jedis;import java.util.List;
import java.util.Set;public class TestRedis2 {// 1.创建Jedis客户端// 连接Redis 服务private Jedis jedis = new Jedis("192.168.179.143", 6379);// 如果 Redis 服务设置了密码,需要下面这行,没有就不需要// jedis.auth("123456");public void testString() {// 2.使用Jedis客户端操作Stringjedis.setex("name", 6, "张根");String name = jedis.get("name");System.out.println(name);}public void testHash() {// 2.使用Jedis客户端操作hashjedis.hset("user", "name", "张根");jedis.hset("user", "age", "18");String name = jedis.hget("user", "name");String age = jedis.hget("user", "age");System.out.println(name);System.out.println(age);}public void testList() {// 2.使用Jedis客户端操作listjedis.lpush("userList", "张弢", "张启樵", "张三丰", "张无忌");List<String> userList = jedis.lrange("userList", 0, -1);for (String user : userList) {System.out.println(user);}}public void testSet() {// 2.使用Jedis客户端操作集合setjedis.sadd("sname", "Martin");jedis.sadd("sname", "Jack");jedis.sadd("sname", "Tom");Set<String> userList = jedis.smembers("sname");for (String user : userList) {System.out.println(user);}}public void testZset() {// 2.使用Jedis客户端操作有序集合Zsetjedis.zadd("programingLanguages", 1, "C");jedis.zadd("programingLanguages", 2, "C++");jedis.zadd("programingLanguages", 3, "Java");jedis.zadd("programingLanguages", 0, "Python");List<String> programingLanguages = jedis.zrange("programingLanguages", 0, -1);for (String language : programingLanguages) {System.out.println(language);}}public void colseRedis() {;// 3.关闭客户端jedis.close();System.out.println("关闭jedis成功");}public static void main(String[] args) {TestRedis2 tr2 = new TestRedis2();tr2.testString();tr2.testList();tr2.testHash();tr2.testSet();tr2.testZset();tr2.colseRedis();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024团体程序设计天梯赛L3-1 夺宝大赛

L3-037 夺宝大赛 分数 30 作者 陈越 单位 浙江大学 夺宝大赛的地图是一个由 nm 个方格子组成的长方形&#xff0c;主办方在地图上标明了所有障碍、以及大本营宝藏的位置。参赛的队伍一开始被随机投放在地图的各个方格里&#xff0c;同时开始向大本营进发。所有参赛队从一个方格…

JMeter的高并发和高频率和分布式

性能测试 模拟各种正常的、峰值的测试环境&#xff0c;检测程序的各项性能指标是否能够达标 高并发 JMeter中内置了定时器&#xff0c;可以实现时间模式相关的性能测试 需求1:同一时刻100个同学去访问学生管理系统的查询所有学院信息功能&#xff0c;统计高并发情况下平均响…

ubuntu学习day2

linux常用命令 3.文件查看及处理命令 3.1查看文件内容 cat[选项][文件] -b 对非空输出行编号 -E 在每行结束处显示$ -n 对输出的所有行编号 -s 不输出多行空行 标准输入、标准输出和标准错误 在 Linux 中&#xff0c;每个进程默认有三个文件描述符&#xff1a; 标准输入&…

项目中引入 Redis 及 常用五种数据类型

在平常的开发过程中&#xff0c;我们经常会用到缓存的技术。比如&#xff0c;验证码60秒后过期、计数器的实现、商品信息存储在缓存中快速展示等。那么&#xff0c;项目中经常会使用到的便是 redis 缓存。redis 在内存中操作&#xff0c;读写快。Redis 常用的数据类型有五种&am…

Spark-SQL简介及核心编程

Spark-SQL概述&#xff1a;是Spark用于结构化数据处理的模块&#xff0c;前身是Shark。Shark基于Hive开发&#xff0c;使SQL-on-Hadoop性能大幅提升&#xff0c;但对Hive依赖制约了Spark发展。SparkSQL汲取Shark优点并重新开发&#xff0c;在数据兼容、性能优化和组件扩展上优势…

奇趣点播系统测试报告

1.项目简介 本项目旨在搭建一个视频共享点播系统&#xff0c;服务器支持用户通过前端浏览器访问服务器&#xff0c;获取展示与观看和操作的界面&#xff0c;最终实现视频的上传以及观看和删改查等基础管理功能。让用户拥有良好的观看体验和分享视频的快捷方式&#xff0c;此外…

【Web API系列】WebSocketStream API 深度实践:构建高吞吐量实时应用的流式通信方案

前言 在当今的 Web 开发领域&#xff0c;实时通信已成为许多应用的核心需求。无论是即时聊天、实时数据仪表盘&#xff0c;还是在线游戏和金融交易系统&#xff0c;都需要高效的双向数据传输能力。传统的 WebSocket API 为此提供了基础支持&#xff0c;但在处理大规模数据流、…

基于LangGraph的智能报告生成平台项目分析

前言 不知道你是否知道或者了解OpenAI and Gemini Deep Research。他们是一种能够根据输入问题进行规划、结合网络搜索获取信息并最终呈现结果的研究工具或技术。那这样research是如何实现的呢?最近刚好看到一个实现类似功能的开源项目: open_deep_search。本文将基于该项目进…

Redis 常见的集群架构

Redis 常见的集群架构 以下是 Redis 常见的集群架构及其核心模式详解&#xff0c;结合其设计原理、适用场景和优缺点进行综合说明&#xff1a; 一、主从复制模式 架构原理 角色划分&#xff1a;包含一个主节点&#xff08;Master&#xff09;和多个从节点&#xff08;Slave&…

面试宝典(C++基础)-01

文章目录 1. C++基础1.1 C++特点1.2 说说C语言和C++的区别1.3 说说 C++中 struct 和 class 的区别1.4 include头文件的顺序以及双引号""和尖括号<>的区别1.5 说说C++结构体和C结构体的区别1.6 导入C函数的关键字是什么,C++编译时和C有什么不同?1.7 C++从代码…

快速获得ecovadis认证的方法,如何提升ecovadis认证分数,有效期是多久

快速获得EcoVadis认证的方法 EcoVadis认证是企业社会责任&#xff08;CSR&#xff09;和可持续发展能力的国际评估标准&#xff0c;被广泛应用于供应链管理&#xff08;如苹果、微软、联合利华等巨头要求供应商通过EcoVadis评估&#xff09;。以下是快速获得认证的关键步骤&am…

ubuntu 安装samba

ubuntu 版本&#xff1a;Ubuntu 24.04.2 LTS 1. 保证连网 2. 安装samba sudo apt install samba 在安装结束以后&#xff0c;我们可以使用下面的命令来查看安装&#xff1a; apt list | grep samba freeipa-client-samba/noble 4.11.1-2 amd64 ldb-tools/noble 2:2.8.0samba…

基于SpringBoot的宠物健康咨询系统(源码+数据库+万字文档)

502基于SpringBoot的宠物健康咨询系统&#xff0c;系统包含三种角色&#xff1a;管理员、用户&#xff0c;顾问主要功能如下。 【用户功能】 1. 首页&#xff1a;查看系统主要信息和最新动态。 2. 公告&#xff1a;浏览系统发布的公告信息。 3. 顾问&#xff1a;浏览可提供咨询…

人工智能驱动的科研新范式及学科应用研究

人工智能&#xff08;AI&#xff09;驱动的科研新范式通过数据、算力、算法的深度耦合深度嵌入科学研究的全过程&#xff0c;引发科研流程、思考逻辑和组织模式的深刻变革。文章系统总结了AI驱动科研新范式的主要特征与形式&#xff0c;提出AI驱动科研新范式的演化方向由“科研…

代码生成工具explain的高级用法

修改 explain.cpp 中的模板部分&#xff1a; // 添加自定义头文件 cout << "#include \"CustomLib.h\"\n"; 生成支持日志的记录代码&#xff1a; cout << "Logger::init();\n"; // 自动插入初始化代码其他汇总 Magnet 多线程控制…

Vue3+elementPlus中 树形控件封装

1.组件 <template><div class"selection"><el-select placeholder"请选择" v-model"nameList" clearable clear"handleClear" ref"selectUpResId" style"width: 100%"><el-option hidden :…

辉视监狱广播对讲系统:SIP协议赋能智慧监管新生态

一、全域互联&#xff1a;构建监狱安防设备协同生态 基于SIP协议的辉视广播对讲系统&#xff0c;以"通信中枢"角色打破设备壁垒。其强大的兼容性可无缝对接监狱现有监控、门禁、报警等异构设备&#xff0c;支持GB/T 28181国标协议&#xff0c;实现跨品牌、跨系统的数…

信息系统项目管理师-工具名词解释(上)

本文章记录学习过程中,重要的知识点,是否为重点的依据,来源于官方教材和历年考题,持续更新共勉 本文章记录学习过程中,重要的知识点,是否为重点的依据,来源于官方教材和历年考题,持续更新共勉 数据收集 头脑风暴 在短时间内获得大量创意,适用于团队环境,需要引导者…

C++之二叉搜索树

目录 ⼆叉搜索树的概念 二叉搜索数的性能分析 二叉搜索树的模拟实现 定义二叉树节点结构 二叉搜索树的插入 二叉搜索树的查找 二叉搜索树的删除 中序遍历 全部代码 二叉搜索树key和key/value使用场景 key搜索场景&#xff1a; key/value搜索场景&#xff1a; key/value…

数据结构——哈希详解

数据结构——哈希详解 目录 一、哈希的定义 二、六种哈希函数的构造方法 2.1 除留取余法 2.2 平方取中法 2.3 随机数法 2.4 折叠法 2.5 数字分析法 2.6 直接定值法 三、四种解决哈希冲突的方法 3.1 开放地址法 3.1.1 线性探测法 3.1.2 二次探测法 3.2 链地址法 3…