Redis安装和使用(Ubuntu系统)

本节内容包括Redis简介、安装Redis和Redis实例演示等,Redis在Window系统安装教程可参考Redis安装与运行_厦大数据库实验室博客

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

安装Redis

首先登录Linux系统(本教程全部统一使用hadoop用户登录),打开浏览器,访问Redis官网(https://redis.io/)下载安装包redis-3.2.7.tar.gz,或者访问本教程官网的“下载专区”,到“软件”目录下把redis-3.2.7.tar.gz文件下载到本地。下载后的redis-3.2.7.tar.gz文件,保存在“/home/hadoop/下载”目录下。然后,打开一个终端,执行以下命令将Redis解压至“/usr/local/”目录下并重命名:

  1. $ cd ~
  2. $ sudo tar -zxvf ./下载/redis-3.2.7.tar.gz -C /usr/local
  3. $ cd /usr/local
  4. $ sudo mv ./redis-3.2.7 ./redis

然后,执行如下命令把redis目录的权限赋予hadoop用户:

  1. $ sudo chown -R hadoop:hadoop ./redis

接下来,进入“/usr/local/redis”目录,输入以下命令编译和安装Redis:

  1. $ sudo make
  2. $ sudo make install

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

  1. $ cd /usr/local/redis
  2. $ ./src/redis-server

如果有如下图所示的输出,则表示安装成功。

Redis运行成功截图

然后,再新建一个终端,输入如下命令启动Redis客户端:

然后,再新建一个终端,输入如下命令启动Redis客户端:

  1. $ cd /usr/local/redis
  2. $ ./src/redis-cli

如下图所示,客户端连上服务器之后,会显示“127.0.0.1:6379>”的命令提示符信息,表示服务器的IP地址为127.0.0.1,端口为6379。现在可以执行简单的操作,比如,设置键为”hello”,值为”world”,并且取出键为”hello”时对应的值,下图给出了具体的操作效果。

客户端成功连上服务器截图

至此,Redis安装和运行成功,接下来,即可操作Redis数据库。

Redis实例演示

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

Student表


 

Course表

SC表

Redis数据库是以<key,value>的形式存储数据,把三个表的数据存入Redis数据库时,key和value的确定方法如下:
* key=表名:主键值:列名
* value=列值
例如,把每个表的第一行记录保存到Redis数据中,需要执行的命令和执行结果如下图所示。

Redis插入数据

可以执行类似的命令,把三个表所有数据都插入到Redis数据库中。然后,针对这些已经录入的数据,下面将简单演示如何进行增删改查操作。Redis支持5种数据类型,不同数据类型,增删改查可能不同,这里用最简单的数据类型字符串作为演示。

插入数据

向Redis插入一条数据,只需要先设计好key和value,然后用set命令插入数据即可。例如,在Course表中插入一门新的课程“算法”,4学分,操作命令和结果如下图所示。

插入数据

修改数据

Redis并没有修改数据的命令,所以,如果在Redis中修改一条数据,只能采用一种变通的方式,即在使用set命令时,使用同样的key,然后用新的value值来覆盖旧的数据。例如,把刚才新添加的“算法”课程名称修改为“编译原理”,操作命令和结果如下图所示。

修改数据

 

删除数据

Redis有专门删除数据的命令——del命令,命令格式为“del 键”。所以,如果要删除之前新增的课程“编译原理”,只需输入命令“del Course:8:Cname”,如图6-7所示,当输入“del Course:8:Cname”时,返回“1”,说明成功删除一条数据,当再次输入get命令时,输出为空,说明删除成功。

删除数据

查询数据

Redis最简单的查询方式是使用get命令,上面几个操作中都已经使用过get命令,这里不再赘述。

Redis哈希

这里给出一个具体实例。假设要创建一个Redis哈希,名称为“myhash”,里面包含的字段和值的信息如下:
name age course grade
Xiaoming 21 math 98
可以使用HMSET和HMGET命令来创建和查询,如下所示:

127.0.0.1:6379> HMSET myhash name Xiaoming age 21 course math grade 98
OK
127.0.0.1:6379> HMGET myhash name age course grade
1) "Xiaoming"
2) "21"
3) "math"
4) "98"

如果只想设置或者获得一个值,可以使用HSET和HGET。HSET将哈希表key中的字段field的值设为value,HGET获取存储在哈希表key中指定字段field的值。

128.127.0.0.1:6379> HSET myhash grade 88
(integer) 1
127.0.0.1:6379> HGET myhash grade
"88"
127.0.0.1:6379> HGET myhash name
"Xiaoming"

可以使用HDEL命令删除一个或多个哈希表字段,如下所示:

127.0.0.1:6379> HDEL myhash grade
(integer) 1
127.0.0.1:6379> HGET myhash grade
(nil)
127.0.0.1:6379> HMGET myhash name age coure grade
1) "Xiaoming"
2) "21"
3) "math"
4) (nil)
可以使用HEXISTS命令查看哈希表key中,指定的字段是否存在(存在返回1,不存在返回0),如下所示:
127.0.0.1:6379> HEXISTS myhash name
(integer) 1
127.0.0.1:6379> HEXISTS myhash grade
(integer) 0

 

可以使用HGETALL获取在哈希表key中的所有字段和值,如下所示:

127.0.0.1:6379> HGETALL myhash
1) "name"
2) "Xiaoming"
3) "age"
4) "21"
5) "course"
6) "math"

Redis Select命令 

Redis Select命令

Redis Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值,即客户端连接到Redis的时候,默认是使用0号数据库。
Redis Select的命令基本语法如下:

127.0.0.1:6379> SELECT index
128

该命令执行完毕后,总是返回OK。
下面给出具体实例:

127.0.0.1:6379> SET db_number 0   # 默认使用 0 号数据库
OK
127.0.0.1:6379> HGET myhash name   #myhash是前面已经创建好的哈希表
"Xiaoming"
127.0.0.1:6379> SELECT 1    # 使用 1 号数据库
OK
127.0.0.1:6379[1]> GET db_number  # 已经切换到 1 号数据库,注意 Redis 现在的命令提示符多了个 [1]
(nil)
127.0.0.1:6379[1]> SET db_number 1
OK
127.0.0.1:6379[1]> GET db_number
"1"
127.0.0.1:6379[1]> HGET myhash name   # 1号数据库中不存在myhash
(nil)
127.0.0.1:6379[1]> SELECT 3    # 再切换到 3 号数据库
OK
127.0.0.1:6379[3]> GET db_number   # 提示符从 [1] 改变成了 [3]
(nil)
127.0.0.1:6379[3]> SET db_number 3
OK
127.0.0.1:6379[3]> GET db_number
"3"
127.0.0.1:6379[3]> SELECT 0   # 再切换到 0 号数据库
OK
127.0.0.1:6379> GET db_number
"0"
127.0.0.1:6379> HGET myhash name   #myhash是前面已经创建好的哈希表
"Xiaoming"

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

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

相关文章

【C语言】每日一题,快速提升(3)!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 题目&#xff1a;杨辉三角 在屏幕上打印杨辉三角。 1 1 1 1 2 1 1 3 3 1 ……......... 解答&#xff1a; 按照题设的场景&#xff0c;能发现数字规律为&#xff1…

聚道云软件连接器助力医疗器械有限公司打通金蝶云星辰与飞书

摘要 聚道云软件连接器成功将金蝶云星辰与飞书实现无缝对接&#xff0c;为某医疗器械有限公司解决采购订单、付款单同步、审批结果回传、报错推送等难题&#xff0c;实现数字化转型升级。 客户介绍 某医疗器械有限公司是一家集研发、生产、销售为一体的综合性医疗器械企业。…

【noVNC】使用noVNC实现浏览器远程VNC(基于web的远程桌面)

一、操作的环境 windows 10系统乌班图 Ubuntu 22 二、noVNC 部署方式 原理&#xff1a;开启 Websockify 代理来做 WebSocket 和 TCP Socket 之间的转换 2.1 noVNC和VNC服务端同一台机器 使用方式&#xff0c;查看另一篇博文 &#xff1a;【noVNC】使用noVNC实现浏览器网页访…

WebStorm2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 WebStorm是一款由JetBrains公司开发的强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于前端开发。它提供了丰富的功能和工具&#xff0c;包括代码编辑器、调试器、版本控制集成等&#xff0c;使开发人员能够更…

策略模式:灵活调整算法的设计精髓

在软件开发中&#xff0c;策略模式是一种行为型设计模式&#xff0c;它允许在运行时选择算法的行为。通过定义一系列算法&#xff0c;并将每个算法封装起来&#xff0c;策略模式使得算法可以互换使用&#xff0c;这使得算法可以独立于使用它们的客户。本文将详细介绍策略模式的…

使用docker部署数据可视化平台Metabase

目前公司没有人力开发数据可视化看板&#xff0c;因此考虑自己搭建开源可视化平台MetaBase。在此记录下部署过程~ 一、镜像下载 docker pull metabase/metabase:latest 运行结果如下&#xff1a; 二、创建容器 docker run -dit --name matebase -p 3000:3000\ -v /home/loc…

利用计算机视觉算法提取裂纹相关特征参数信息

ABCnutter/CrackFeature: &#x1f680;使用计算机视觉相关算法提取裂缝的骨架&#xff08;矢量化&#xff09;、轮廓【支持提前修复断裂裂缝】&#xff0c;以及几何特征参数&#xff08;长度、宽度、面积和主要方向&#xff09;【欢迎Star】。主要流程以及相关算法如下&#x…

SpringBoot快速入门笔记(7)

文章目录 VueRouter前端路由1、简介2、RouterDemo3、子路由4、动态路由 VueRouter前端路由 1、简介 Vue的单页面应用是基于路由和组件的&#xff0c;不同组件的切换需要前端路由完成 vue-router3只能结合vue2&#xff0c;vue-router4只能结合vue3 安装 npm install vue-router…

# Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(四) -实现 service2 子模块。

Nacos 服务发现-Spring Cloud Alibaba 综合架构实战&#xff08;四&#xff09; -实现 service2 子模块。 1、在 service2 子模块下的 service-2-api 二级子工程中&#xff0c;定义服务接口 创建 ProviderService.java /*** C:\java-test\idea2019\nacos_discovery\nacos-mi…

设定延迟任务和定时任务并优化定时任务

一丶设定延时任务 1.设定延迟任务要求如下 ①在系统中建立easylee用户&#xff0c;设定其密码为easylee ②延迟任务由root用户建立 ③要求在5小时后备份系统中的用户信息文件到/backup中 ④确保延迟任务是使用非交互模式建立 ⑤确保系统中只有root用户和easylee用户可以执…

TypeScript之类

一、类的定义 二、对象的创建 class Person{id:number;name:string;age:number 18;constructor(id:number,name:string){this.id id;this.name name;}introduce():string{return hello,I am ${this.name},and I am ${this.age} years old.} }let person new Person(1,zhan…

普发Pfeiffer CCR263 CCR272 CMR261 CMR273 PBR260 IMR265 TPR265 使用说明手侧

普发Pfeiffer CCR263 CCR272 CMR261 CMR273 PBR260 IMR265 TPR265 使用说明手侧