当前位置: 首页 > news >正文

阿里云服务器在Ubuntu上安装redis并使用

1、redis安装

sudo apt install lsb-release curl gpgcurl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.listsudo apt-get updatesudo apt-get install redis

如果你使用了包管理器来安装Redis,通常它会被安装到系统的默认位置。可以通过which命令查看redis的安装位置

which redis-server

which命令

2、启动redis的三种方式

方式一

/etc/init.d/redis-server start

方式二

systemctl start redis-server

方式三

service redis-server start

service redis-server start

重启redis

service redis-server restart

3、使用Java程序调用redis服务

3.1 修改配置文件

启动之后的redis只能在服务器内部使用,如果需要外部使用,比如使用Java程序调用,需要
需要修改配置文件。
默认情况下,redis的配置文件在/etc/redis/redis.conf,打开这个文件,注释掉下面的内容。

bind 127.0.0.1 -::1

redis.conf

3.2 创建Java程序

创建maven程序
创建maven程序
添加jedis依赖

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.1</version>
</dependency>

我使用的是阿里云服务器,在运行代码的时候提示:报错信息
在网上搜索了很多解决方案如下:需要修改redis.conf文件中的一些配置:
如下图:
需要修改的配置
但是修改完配置之后还是报错,思考ing,研究了大半天,后来发现因为我用的是阿里云服务器,所以需要在服务器配置里面开通端口
开放端口
然后就可以正常访问了。正常访问

4、redis基本操作

redis的通用命令

	1、切换数据库select 12、查看当前数据库的key的数量DBSIZE3、设置一个key为name,值为tutu的数据set name tutu4、获取值为name的数据get name5、获取所有的keykeys *6、清楚当前的数据库flushdb7、清楚所有的数据库flushall8、模糊查询,查询以user开头的keykeys user:*9、模糊查询,key中有user的数据keys *user*

redis基本命令

	查询key为name是否存在exists name指定key为name的数据移动到1号数据库move name 1指定key为name的数据10s之后过期expire name 10查看key为name的数据还有多就过期ttl name查看key为name的数据是什么类型type name

5、五种数据类型

String(字符串)

		设置key为name的值为tutuset name tutu获取key为name的值get name拼接key为name的值:isAManappend name isAMan重新获取name的值:tutuisAMan获取key为name的长度strlen name如果key为数字,设置key为name的值加1incr name 1如果key为数字,设置key为name的值减1decr name 1设置key为name的值+10incrby name 10设置key为name的值-10decrby name 10截取下标为0-3之间的字符串setrange name 0 3从下标为1对字符串进行替换,abcdefg替换之后为a000fgsetrange name 1 000设置name的之为hello,10s后过期setex name 10 hello如果不存在key为title的数据,则将值设置为redis,如果存在,则set操作失败setnx title redis一次性设置多个值mset k1 v1 k2 v2 k3 v3如果k1已经存在,则k1 k4全部设置失败msetnx k1 v1 k4 v4如果不存在key为name的值,则返回null ,然后set进去,如果存在值,则获取原来的值并设置新的值getset name tutu

List集合

		将一个值或多个值插入到list的头部lpush list 1将一个或多个值插入到list的尾部rpush list 4通过区间获取到具体的值lrange list 0 3移除list的第一个元素lpop list移除list的最后一个元素rpop list根据下标获取list中的某一个值lindex list 0获取list的长度llen list移除list集合指定个数的value ,移除一个值为2的数据lrem list 1 2截取list集合中下标为12的元素集合,并覆盖原来的listltrim list 1 2更新list集合中下标为0的数据的值为bbb,如果下标0的值不存在,则报错lset list 0 bbb将一个具体的值插入到某一个居提的元素的前面或者后面linsert list before kkk aaalinsert list after kkk aaa

Set集合

set中添加一个元素sadd set hello查看set集合中的所有元素smembers set查看set集合中是否存在该元素sismember set world随机取出一个元素srandmember set随机取出两个元素srandmember set 2随机删除set集合中的某个元素spop set移动set集合中的world元素到set2集合中smove set set2 worldset2减去set集合的差集sdiff set2 setset和set2的交集sinter set set2set和set2取并集并去重sunion set set2

Hash集合

hash集合中存放键值对hset hash user tutu从hash集合中获取数据hget hash name往hash集合中添加多个值hmset hash name jsck age 2同时获取多个值hmget hash name age获取hash集合中的所有键值对hgetall hash删除hash集合中指定的key字段hdel hash name获取hash集合的长度hlen hash判断hash集合中指定字段是否存在hexista hash name获取hash集合中的所有keyhkeys hash获取hash集合中的所有keyhvals hash指定hash集合中指定增量hincrby hash age 1如果不存在直接设置值,存在则设置失败hsetns hash password 123456

Zset有序集合

 		添加一个值zadd zset 1 first添加多个值zadd zset second 2 third 4 four获取zset集合中的所有元素zrange zset 0 -1zset集合从小到大排序,-inf负无穷,+inf正无穷zrangebyscore zset -inf +inf从小到大排序并输出键值zrangebyscore zset -inf +inf withscores指定负无穷到1的范围zrangebyscore zset -inf 1 withscores移除zset集合中指定的元素zrem zset four查看zset集合中的元素的个数zcard zset反转指定范围zrevrange zset 1 2

相关文章:

阿里云服务器在Ubuntu上安装redis并使用

1、redis安装 sudo apt install lsb-release curl gpgcurl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpgecho "deb [signed-by/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.…...

Blazor-Blazor呈现概念

静态和交互式呈现概念 在Blazor开发中&#xff0c;Razor 组件具备两种重要的呈现方式&#xff0c;分别是静态呈现和交互式呈现。 静态呈现 也被称为静态渲染&#xff0c;是一种典型的服务器端方案。在这种模式下&#xff0c;组件呈现时&#xff0c;用户与.NET/C# 代码之间缺…...

14-6-2C++的list

(一&#xff09;list对象的带参数构造 1.list&#xff08;elem);//构造函数将n个elem拷贝给本身 #include <iostream> #include <list> using namespace std; int main() { list<int> lst(3,7); list<int>::iterator it; for(itlst.begi…...

StarRocks常用命令

目录 1、StarRocks 集群管理&配置命令 2、StarRocks 常用操作命令 3、StarRocks 数据导入和导出 1、StarRocks 集群管理&配置命令 查询 FE 节点信息 SHOW frontends; SHOW PROC /frontends; mysql -h192.168.1.250 -P9030 -uroot -p -e "SHOW PROC /dbs;"…...

激光雷达和相机早期融合

通过外参和内参的标定将激光雷达的点云投影到图像上。 • 传感器标定 首先需要对激光雷达和相机&#xff08;用于获取 2D 图像&#xff09;进行外参和内参标定。这是为了确定激光雷达坐标系和相机坐标系之间的转换关系&#xff0c;包括旋转和平移。通常采用棋盘格等标定工具&…...

PMP–一、二、三模–分类–12.采购管理

文章目录 技巧十二、采购管理 一模12.采购管理--3.控制采购--输出--风险登记册--每个被选中的卖方都会带来特殊的风险。随着早期风险的过时以及新风险的出现&#xff0c;在项目执行期间对风险登记册进行变更。 供应商还未开始做&#xff0c;是一个风险&#xff0c;当做风险进行…...

C++ 标准模板库 (STL, Standard Template Library)

声明&#xff1a;大佬们~这是Tubishu在追寻stl过程中偶然得到了“颢天”大佬的笔记&#xff0c;shushu感觉非常有帮助&#x1f525;又颢天佬未曾来过CSDN&#xff0c;索性在此传达颢天大佬的功德&#x1f9ce; 传送门在此➡️颢天笔记✨✨ C 标准模板库 (STL, Standard Templa…...

从spec到iso的koji使用

了解一下Linux发行版流程&#xff1a;:从spec到iso的koji使用 for Fedora 41。 Fedora 41有24235个包&#xff0c;我们选择 minimal 的几十个源码包&#xff0c;百多个rpm包构建。 配3台服务器 40C64G 48C64G 80C128G&#xff0c;有点大材小用&#xff0c;一台就够了 &#xf…...

【记录自开发的SQL工具】工具字符拼接、Excel转sql、生成编码、生成测试数据

记录自己开发的一个SQL聚合工具 功能介绍&#xff1a; 文本加引号 给多行文本前后添加引号&#xff0c;并用逗号连接&#xff0c;直接复制到 sql 中的 in 条件中 Excel转SQL 适用于将Excel表格的数据&#xff0c;批量导入到数据库的场景 此工具能快速将excel表格转换为i…...

Cesium特效——城市白模的科技动效的各种效果

最终效果图如下&#xff1a; 实现方法&#xff1a; 步骤一&#xff1a;使用cesiumlib生产白模&#xff0c;格式为3dtiles 注意事项&#xff1a;采用其他方式可能导致白模贴地&#xff0c;从而导致不能实现该效果&#xff0c;例如把步骤二的服务地址改为Cesium Sandcastle 里的…...

VS Code i18n国际化组件代码code显示中文配置 i18n ally

VUE项目做i18n国际化之后&#xff0c;代码中的中文都变成了code这时的代码就会显得非常难读&#xff0c;如果有一个插件能把code转换成中文显示就好了 vscode插件搜索“i18n ally” 在项目根文件夹下创建文件&#xff1a;.vscode/settings.json settings.json 内容如下 {"…...

C++ —— 智能指针 unique_ptr (上)

C —— 智能指针 unique_ptr &#xff08;上&#xff09; 普通指针的不足普通指针的释放智能指针智能指针 unique_ptr智能指针初始化错误用法get()方法返回裸指针智能指针不支持指针的运算&#xff08;、-、、- -&#xff09; 普通指针的不足 new和new [] 的内存需要用delete和…...

技术 · 创作 · 生活 | 我的 2024 全面复盘

目录 &#x1f31f;2024年度总结&#xff1a;回顾、成长与突破&#x1f31f;&#x1f680; 一、技术成长与突破 &#x1f680;&#x1f517; 1. 深入区块链与智能合约&#x1f50d; 2. 探索新兴技术 ✍️ 二、创作与博客历程 ✍️&#x1f4d6; 1. 内容创作的演变&#x1f3c6;…...

表的增删改查(MySQL)

1. 表的增删改查 CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09; 1.1 Create 语法&#xff1a; INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ...value_list:…...

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 目录 【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 优势 适用场景 项目结构 关键代码 优势 消除 switch&#xff1a;将分支逻辑分散到独立的策略类中。 开闭原则&#xff1a;新增类型只需添加新的 TypeHa…...

基于Springboot用axiospost请求接收字符串参数为null的解决方案

问题 ​ 今天在用前端 post 请求后端时发现&#xff0c;由于是以 Json对象的形式传输的&#xff0c;后端用两个字符串形参无法获取到对应的参数值 前端代码如下&#xff1a; axios.post(http://localhost:8083/test/postParams,{a: 1, b:2} ,{Content-Type: application/jso…...

最长递增——蓝桥杯

1.题目描述 在数列 a1​,a2​,⋯,an​ 中&#xff0c;如果ai​<ai1​<ai2​<⋯<aj​&#xff0c;则称 ai​ 至 aj​ 为一段递增序列&#xff0c;长度为 j−i1。 定一个数列&#xff0c;请问数列中最长的递增序列有多长。 输入描述 输入的第一行包含一个整数 n。…...

【MFC】C++所有控件随窗口大小全自动等比例缩放源码(控件内字体、列宽等未调整) 20250124

MFC界面全自动等比例缩放 1.在初始化里 枚举每个控件记录所有控件rect 2.在OnSize里&#xff0c;根据当前窗口和之前保存的窗口的宽高求比例x、y 3.枚举每个控件&#xff0c;根据比例x、y调整控件上下左右,并移动到新rect struct ControlInfo {CWnd* pControl;CRect original…...

C#标准Mes接口框架(持续更新)

前言 由于近期我做了好几个客户的接入工厂Mes系统的需求。但是每个客户的Mes都有不同程度的定制需求&#xff0c;原有的代码复用难度其实很大。所以打算将整个接入Mes系统的框架单独拿出来作为一个项目使用&#xff0c;同时因为不同的设备接入同一个Mes系统&#xff0c;所以代…...

【Uniapp-Vue3】动态设置页面导航条的样式

1. 动态修改导航条标题 uni.setNavigationBarTitle({ title:"标题名称" }) 点击修改以后顶部导航栏的标题会从“主页”变为“动态标题” 2. 动态修改导航条颜色 uni.setNavigationBarColor({ backgroundColor:"颜色" }) 3. 动态添加导航加载动画 // 添加加…...

SQL 递归 ---- WITH RECURSIVE 的用法

SQL 递归 ---- WITH RECURSIVE 的用法 开发中遇到了一个需求&#xff0c;传递一个父类id&#xff0c;获取父类的信息&#xff0c;同时获取其所有子类的信息。 首先想到的是通过程序中去递归查&#xff0c;但这种方法着实孬了一点&#xff0c;于是想&#xff0c;sql能不能递归查…...

期权帮|如何利用股指期货进行对冲套利?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 如何利用股指期货进行对冲套利&#xff1f; 对冲就是通过股指期货来平衡投资组合的风险。它分为正向与反向两种策略&#xff1a; &#xff08;1&#xff09;正向对冲&#xff…...

INCOSE需求编写指南-第1部分:介绍

第1部分&#xff1a;介绍Section 1: Introduction 1.1 目的和范围 Purpose and Scope 本指南专门介绍如何在系统工程背景下以文本形式表达需求和要求陈述。其目的是将现有标准&#xff08;如 ISO/IEC/IEEE 29148&#xff09;中的建议以及作者、主要贡献者和审稿员的最佳实践结…...

FFPlay命令全集合

FFPlay是以FFmpeg框架为基础&#xff0c;外加渲染音视频的库libSDL构建的媒体文件播放器。 ffplay工具下载并播放视频&#xff0c;可以辅助卡看流信息。 官网下载地址&#xff1a;http://ffmpeg.org/download.html#build-windows 下载build好的exe程序&#xff1a; 此处下载…...

Mono里运行C#脚本34—内部函数调用的过程

本文来分析Mono运行脚本时,会调用一些C实现的函数代码。 而这个过程又是怎么样实现的呢? 比如前面分析的脚本: IL_0000: call string class MonoEmbed::gimme() 在这里会调用C函数实现的MonoEmbed::gimme()函数。 而这个函数是在C程序内部实现,通过下面的代码来注册到运行…...

rust feature h和 workspace相关知识 (十一)

feature 相关作用和描述 在 Rust 中&#xff0c;features&#xff08;特性&#xff09; 是一种控制可选功能和依赖的机制。它允许你在编译时根据不同的需求启用或禁用某些功能&#xff0c;优化构建&#xff0c;甚至改变代码的行为。Rust 的特性使得你可以轻松地为库提供不同的…...

-bash: ./uninstall.command: /bin/sh^M: 坏的解释器: 没有那个文件或目录

终端报错&#xff1a; -bash: ./uninstall.command: /bin/sh^M: 坏的解释器: 没有那个文件或目录原因&#xff1a;由于文件行尾符不匹配导致的。当脚本文件在Windows环境中创建或编辑后&#xff0c;行尾符为CRLF&#xff08;即回车和换行&#xff0c;\r\n&#xff09;&#xf…...

【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}

文章目录 介绍redis的引入 分布式系统单机架构应用服务和数据库服务分离【负载均衡】引入更多的应用服务器节点 单机架构 分布式是什么 数据库分离和负载均衡 理解负载均衡 数据库读写分离 引入缓存 数据库分库分表 引入微服务 介绍 The open source, in-memory data store us…...

C#高级:常用的扩展方法大全

1.String public static class StringExtensions {/// <summary>/// 字符串转List&#xff08;中逗 英逗分隔&#xff09;/// </summary>public static List<string> SplitCommaToList(this string data){if (string.IsNullOrEmpty(data)){return new List&…...

Consul持久化配置报错1067---consul_start

报错都是文件写的有问题或者格式问题&#xff0c;直接复制我的这个改改地址就行 先创建文本文件consul_start.txt--->再复制代码保存---->再把.txt改成.bat 持久化存储的地址在&#xff1a;mydata 注&#xff1a;D:\consul\consul_1.20.2_windows_386改成自己consul的…...