redis在linux的安装及redis常用指令的使用

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis在linux的安装及相关指令

一、Redis的概述

1、什么是redis?

Redis 开源 遵循BSD 基于内存数据存储 被用于作为内存型和键值型数据库,缓存 ,消息中间件

`1.redis都是存储在内存
 2.使用场景:数据库存储数据,缓存(重要),消息中间件 
 3.redis数据存储结构:一个键对应一个值 key=value
                    key都是字符串类型
                    value支持丰富的数据类型:String,List,Set,Zset(自然排序),Hash
 4.内存型数据库:特点数据存储在内存中 断电 丢失数据
              支持数据的持久化,将数据存储到硬盘中,定时将数据持久化一次`


rdis中文官网:http://www.redis.cn/

4.png


2、redis的特点

Redis是一个高性能key/value内存型数据库


Redis支持丰富的数据类型 String list hash set zset


Redis支持持久化 内存数据 ----> 磁盘(持久化过程中使用了父子进程 )


Redis单线程,单进程 线程安全(没有多线程并发访问,数据安全)


注意:redis6.0之后开始支持多线程


3、什么是BSD开源协议?

BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:


如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。


如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。


不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。


二、redis安装过程

redis是一个开源的 内存型 键值型

0.准备环境

阿里云

centos7.x+


redis 4.x+(我使用的是:redis-4.0.10)

5.png


1.下载redis源码包

https://redis.io/


2.下载完整源码包

redis-4.0.10.tar.gz


3.将下载redis资料包上传到Linux中

6.png

4.解压缩文件

[root@localhost ~]# tar -zxvf redis-4.0.10.tar.gz
[root@localhost ~]# ll


7.png


5.安装gcc

yum install -y gcc


8.png


6.进入解压缩目录执行如下命令

[root@iZbp1bq6vb70qo4o5mrxdzZ ~]# ll
[root@iZbp1bq6vb70qo4o5mrxdzZ ~]# cd redis-4.0.10
[root@iZbp1bq6vb70qo4o5mrxdzZ redis-4.0.10]# make MALLOC=libc

9.png


7.编译完成后执行如下命令

make install PREFIX=/usr/redis


10.png


8.进入/usr/redis目录启动redis服务端

redis安装成功后只有bin目录,存放二进制执行命令文件

redis-server:启动redis服务器的命令

redis-cli:启动redis客户端的命令


[root@iZbp1bq6vb70qo4o5mrxdzZ redis-4.0.10]# cd /usr/redis/bin/
[root@iZbp1bq6vb70qo4o5mrxdzZ bin]# ll
-rwxr-xr-x 1 root root  353640 Dec  2 10:51 redis-benchmark
-rwxr-xr-x 1 root root 3643640 Dec  2 10:51 redis-check-aof
-rwxr-xr-x 1 root root 3643640 Dec  2 10:51 redis-check-rdb
-rwxr-xr-x 1 root root  519840 Dec  2 10:51 redis-cli
lrwxrwxrwx 1 root root      12 Dec  2 10:51 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 3643640 Dec  2 10:51 redis-server
[root@iZbp1bq6vb70qo4o5mrxdzZ bin]# ./redis-server


11.png


9.Redis服务端口默认是 6379

12.png


10.进入bin目录执行客户端连接操作

(1)步骤:右击112.124.69.95这个位置,然后点击克隆会话(服务器不要关闭)

13.png


(2)启动客服端并连接成功出现上面界面连接成功

[root@iZbp1bq6vb70qo4o5mrxdzZ ~]# cd /usr/redis/bin/
[root@iZbp1bq6vb70qo4o5mrxdzZ bin]# ll
total 11536
-rwxr-xr-x 1 root root  353640 Dec  2 10:51 redis-benchmark
-rwxr-xr-x 1 root root 3643640 Dec  2 10:51 redis-check-aof
-rwxr-xr-x 1 root root 3643640 Dec  2 10:51 redis-check-rdb
-rwxr-xr-x 1 root root  519840 Dec  2 10:51 redis-cli
lrwxrwxrwx 1 root root      12 Dec  2 10:51 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 3643640 Dec  2 10:51 redis-server
[root@iZbp1bq6vb70qo4o5mrxdzZ bin]# ./redis-cli
127.0.0.1:6379> set name whj
OK
127.0.0.1:6379> get name
"whj"
127.0.0.1:6379> 


14.png

11、关闭redis服务器

shutdown


15.png


三、redis需要注意的细节

(1)redis 内存型 非关系型数据库(键值型)

数据都存储在内存中,效率高,断电数据丢失

(2)配置文件启动

当前启动方式:./redis-server 使用redis默认设置启动

如果要修改默认配置需要在redis配置文件

16.png


将redis.cong拷贝


17.png


 绝对路径:./redis-server /usr/redis/redis.conf 
  相对路径:./redis-server ../redis.conf 


修改redis的端口号,进入redis.conf

[root@localhost redis]# vi redis.conf ll



18.png


(3)redis的默认库配置

redis管理单位:子库

redis服务器启动时会初始化16个子库(从0开始到15结束

默认进入的就是0库


19.png


修改默认库的个数

[root@localhost redis]# vi redis.conf 
# dbid is a number between 0 and 'databases'-1
databases 16
更改为5

20.png


客户端访问

select dbid 选定字库操作


21.png



四、Redis数据库相关指令

1、数据库操作指令

(1)修改当前选中的子库

使用redis的默认配置器动redis服务后,默认会存在16个库,编号从0-15
可以使用select 库的编号 来选择一个redis的库


(2)Redis中操作库的指令

- 清空当前的库  FLUSHDB
- 清空全部的库  FLUSHALL



22.png


(3)redis客户端显示中文

./redis-cli – raw
  • redis默认插入可以操作中文,但是获取不展示中文

23.png


在打开客户端时:./redis-cli 命令后面 加上 --raw 即可看到中文。


24.png


(4)DEL指令


- 语法 :  DEL key [key ...] 
- 作用 :  删除给定的一个或多个key 。不存在的key 会被忽略。
- 可用版本: >= 1.0.0
- 返回值: 被删除key 的数量。 


25.png


支持同时删除多个

127.0.0.1:6379> set name 王恒杰
127.0.0.1:6379> set age 21
127.0.0.1:6379> del name age
127.0.0.1:6379> keys *


26.png


(5)检查那个key是否存在

exists 检查那个键是否存在
127.0.0.1:6379> exists name
EXISTS指令
语法:  EXISTS key
作用:  检查给定key 是否存在。
可用版本: >= 1.0.0
返回值: 若key 存在,返回1 ,否则返回0。


27.png


(6)设置某个键的存活时长

  • expire [ɪkˈspaɪər]翻译:无效
  • 超过对应毫秒数后简直失效
  • expire:单位秒


expire   
- 语法:  EXPIRE key seconds
- 作用:  为给定key 设置生存时间,当key 过期时(生存时间为0 ),它会被自动删除。
- 可用版本: >= 1.0.0
- 时间复杂度: O(1)
- 返回值:设置成功返回1 。
用处:短信验证码有效时间


28.png


pexpire:单位毫秒

- 语法 :  PEXPIRE key milliseconds
- 作用 :  这个命令和EXPIRE 命令的作用类似,但是它以毫秒为单位设置key 的生存时间,而不像EXPIRE 命令那样,以秒为单位。
- 可用版本: >= 2.6.0
- 时间复杂度: O(1)
- 返回值:设置成功,返回1  key 不存在或设置失败,返回


29.png


(7)查看当前所有键 keys

keys * 查看所有
*:匹配0到多个字符
?:匹配一个字符
[]:匹配范围内的一个字符
keys h[abcd]llo
 语法 :  KEYS pattern
 作用 :  查找所有符合给定模式pattern 的key 。
 语法:
  KEYS * 匹配数据库中所有key 。
  KEYS h?llo 匹配hello ,hallo 和hxllo 等。
  KEYS h*llo 匹配hllo 和heeeeello 等。
  KEYS h[ae]llo 匹配hello 和hallo ,但不匹配hillo 。特殊符号用 "\" 隔开
 可用版本: >= 1.0.0
 返回值: 符合给定模式的key 列表。

30.png


(8)move 将数据库中的key移动到另外一个子数据库中

- 语法 :  MOVE key db
- 作用 :  将当前数据库的key 移动到给定的数据库db 当中。
- 可用版本: >= 1.0.0
- 返回值: 移动成功返回1 ,失败则返回0 。


31.png


(9)TTL 返回某个键存活的时间(单位:秒)

ttl key 和expire key一起使用
- 语法 :   TTL key
- 作用 :   以秒为单位,返回给定key 的剩余生存时间(TTL, time to live)。
- 可用版本: >= 1.0.0
- 返回值:
  当key 不存在时,返回-2 。
  当key 存在但没有设置剩余生存时间时,返回-1 。
  否则,以秒为单位,返回key 的剩余生存时间。
- Note : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1 



32.png


(9)PTTL返回某个键存活的时间(单位:毫秒)

- 语法 :  PTTL key
- 作用 :  这个命令类似于TTL 命令,但它以毫秒为单位返回key 的剩余生存时间,而不是像TTL 命令那样,以秒为单位。
- 可用版本: >= 2.6.0
- 返回值: 当key 不存在时,返回-2 。当key 存在但没有设置剩余生存时间时,返回-1 。
- 否则,以毫秒为单位,返回key 的剩余生存时间。
- 注意 : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1 。

33.png

34.png


(10)randomkey随机返回

- 语法 :  RANDOMKEY
- 作用 :  从当前数据库中随机返回(不删除) 一个key 。
- 可用版本: >= 1.0.0
- 返回值:当数据库不为空时,返回一个key 。当数据库为空时,返回nil 


35.png


(11)RENAME 改名

- 语法 :  RENAME key newkey
- 作用 :  将key 改名为newkey 。当key 和newkey 相同,或者key 不存在时,返回一个错误。当newkey 已经存在时,RENAME 命令将覆盖旧值。
- 可用版本: >= 1.0.0
- 返回值: 改名成功时提示OK ,失败时候返回一个错误。

36.png


(12)type 返回某个键对应的值的类型

- 语法 :  TYPE key
- 作用 :  返回key 所储存的值的类型。
- 可用版本: >= 1.0.0
- 返回值:
  none (key 不存在)
  string (字符串)
  list (列表)
  set (集合)
  zset (有序集)
  hash (哈希表)


37.png

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
7天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
20 5
|
17天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
46 2
|
20天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
29 3
|
3天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
28 0
|
7天前
|
NoSQL 编译器 Linux
【赵渝强老师】Redis的安装与访问
本文基于Redis 6.2版本,详细介绍了在CentOS 7 64位虚拟机环境中部署Redis的步骤。内容包括安装GCC编译器、创建安装目录、解压安装包、编译安装、配置文件修改、启动服务及验证等操作。视频讲解和相关图片帮助理解每一步骤。
|
9天前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
22 0
|
22天前
|
Linux 网络安全 虚拟化
适用于Linux的Windows子系统(WSL1)的安装与使用记录
并放到启动文件夹,就可以开机自动启动了。
28 0
|
SQL NoSQL Java
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
|
1月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
118 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装