• Redis-Linux中安装Redis、命令操作Redis


    目录

    一、Redis简介

     NoSQL与SQL的区别

     二、Linux上安装redis

    上传并解压redis.gz

    进入 redis的解压目录,执行命令 make

    ​编辑

    修改redis为守护进程

    们测试一下能否远程连接RedisDesktopManager客户端

     开放6379端口

     授权,允许远程连接

    三、redis命令 

    Redis字符串(String)

     Redis哈希(Hash)

    Redis列表(List)

    Redis集合(Set)


    一、Redis简介

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。

    它支持 字符串(String)、哈希表(hash)、列表(list)、集合(set)、有序集合(zset-- sort set),位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

    Redis用途:1. 数据库 2. 缓存

    作用:提升程序运行的效率与性能

    集群:哨兵、主从、分片式

    1. #下载
    2. redis-5.0.0.tar.gz(linux)
    3. Redis-x64-3.2.100.msi(window安装版)
    4. Redis-x64-3.2.100.zip(window解压版)

     NoSQL与SQL的区别

    NoSQl数据库(非关系数据库):Redis、Ehcache、MongoDB等 ----直接通过键值对的方式取值,数据之间不存在关系

    SQL数据库(关系数据库):SQLServer、Oracle、MySQL等 ----通过查询表的方式获取数据

     二、Linux上安装redis

    上传并解压redis.gz

    将Redis的安装包拖进MobaXterm中

    1. #1.解压redis
    2. tar -zxvf redis-5.0.0.tar.gz

    1. #2.安装gcc
    2. yum install -y gcc
    3. Redis与Tomcat最大的区别就是,redis的使用需要gcc的环境支持,才能使用

    安装好之后还需要将Redis编译一下

    进入 redis的解压目录,执行命令 make

    1. #3.编译redis
    2. cd /redis-5.0.0
    3. make(需进入Redis的解压目录执行命令-编译)

     编译完成之后,redis就能运行了,但是是非守护进程方式。而非守护进程不能输入其他命令,想输入的时候只能Ctrl+c,但Ctrl+c的时候服务会停止,所有我们需要修改redis的配置,改成守护进程

    注:Redis端口号:6379

    修改redis为守护进程

    1. #4.修改redis.conf文件,将Redis修改为守护进程
    2. 先将redis.conf 备份
    3. cp redis.conf redis.conf.bak20220809
    4. 进入redis.conf文件,将daemonize no 改为 daemonize yes

    注意:当连接工具不能直接打开文件编辑,那么需要通过以下方法进行快速查找

    # Linux在文件中查找关键字 vim xxx.conf 先"/" 然后"关键字" 再enter; 如果第一个不是你想找到的目标,"n"指找下一个
    1. #5.启动redis
    2. ./(src-需要在src里面/)redis-server ../redis.conf
    3. 通过哪个配置文件去启动Redis

    1. #6.测试redis启动是否成功
    2. ./(src/)redis-cli
    3. ping
    4. (会回应一个 PONG)

     

    们测试一下能否远程连接RedisDesktopManager客户端

    可以看到,是连接不上的。

    原因:1.redis的端口号6379没有开放。2. redis.conf 里面还缺少了配置

     开放6379端口

    1. 开放redis端口
    2. firewall-cmd --zone=public --add-port=6379/tcp --permanent
    3. #更新防火墙规则
    4. firewall-cmd --reload
    5. #查看防火墙列表
    6. firewall-cmd --zone=public --list-ports

     授权,允许远程连接

    再次修改redis.conf文件

    更改密码 更改完之后查看一下redis的服务是否是启动的 

    服务还是启动的,但我们的配置已经更改了,所以我们需要杀掉redis进程

    1. kill -9 进程 pid
    2. 再次启动
    3. ./(src/)redis-server ../redis.conf
    4. 就能远程连接了

     注意 lsof -i:6379 里的数字

    再看一下进程,就会发现已经关闭了 

     再次远程连接RedisDesktopManager 

    看到这个就代表连接成功了。

    再次测试redis启动是否成功 

    为什么我们ping了之后没有返回pong呢?

    因为我们配置了外连接和密码,测试redis启动的命令也需要更改

    1. 客户端redis-cli链接redis,重新测试
    2. ./src/redis-cli -h 127.0.0.1 -p 6379 -a 123456
    3. ping
    4. select 1

     -h:本机IP地址,-p:端口号,-a:密码

     

    连接Redis出现无法连接到Redis连接被拒绝。

    问题:Could not connect to Redis at 127.0.0.1:6379: Connection refused

    可能原因:未启动redis服务器端

    redis-server redis.conf
    

     就OK啦

    三、redis命令 

     切换数据库

    Redis字符串(String)

    String(字符串) 它是redis最基本的数据类型,一个key对应一个value,需要注意是一个键值最大存储512MB 

    1. # set key //保存
    2. set name zs
    3. set age 12
    4. set sex nan
    5. # get key //获取
    6. get name
    7. # del key //删除
    8. del name
    9. # type key //查看类型
    10. type age //string 说明type返回的是键值对存储类型,而不是值存储类型
    11. # keys *或keys key //查看所有或者指定的key
    12. keys *
    13. # SETEX KEY_NAME TIMEOUT VALUE// 给键值对设置过期时间
    14. setex zs 60 live
    15. # ttl key// 获取键值对剩余的存活时间
    16. ttl zs

     Redis哈希(Hash)

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

    1. # hset key field1 value1 [field2 value2] #同时将多个field-value设置到哈希表key
    2. hset user name zs age 12 sex nv
    3. # hget key field #获取指定的字段值
    4. hget user age
    5. # hdel key field #删除指定的字段值
    6. hdel user age
    7. # hgetall key #查询指定key的所有字段
    8. hgetall user
    9. # hexists key field #查询指定key中的字段是否存在
    10. hexists user name
    11. # hlen key #获取指定key中的长度
    12. hlen user

    Redis列表(List)

    Redis列表是简单的字符串列表,按照插入顺序排序。

    你可以添加一个元素到列表的头部(左边)或者尾部(右边)

    1. # lpush key value1 value2 value3 #将一个或多个值插入到列表头部
    2. lpush en a b c d e f g
    3. # llen key #获取列表的长度
    4. llen en
    5. # lindex key index #根据索引获取列表中的元素
    6. lindex en 1 #返回f,说明下标从0开始,同时先进后出
    7. # lrange key start sop #查看指定范围内的元素
    8. lrange en 1 3#返回fed,说明下标从0开始,同时先进后出

    Redis集合(Set)

    Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

    1. # sadd key value1 [value2] #向集合添加一个或多个元素
    2. sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu
    3. # scard key #获取集合中的元素数量
    4. scard hobby
    5. # exists key #是否存在
    6. exists hobby
  • 相关阅读:
    PTA_乙级_1006
    (附源码)ssm跨平台教学系统 毕业设计 280843
    用户态与内核态
    浅析开源内存数据库Fastdb
    JDK1.7下测试ConnectorJ连接MySQL8.0
    【uni-app系列】uni-app之nvue使用
    使用docker安装redis并持久化
    代码随想录 Day - 61|#503 下一个更大元素 II|#42 接雨水
    javascript创建cookie
    基于web的邮票鉴赏系统及实现设计与实现-计算机毕业设计源码+LW文档
  • 原文地址:https://blog.csdn.net/weixin_65211978/article/details/128038582