大數據學習棧記——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.pswp.cn/pingmian/76760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76760.shtml
英文地址,請注明出處:http://en.pswp.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…