目录

一,Redis简介

核心存储键值对:String,list,hash,set,zset(sort set)

二,Linux上安装redis

1.将Redis的压缩包放入客户端的存储文件夹中

解压压缩包

下载Redis运行所需要的gcc环境

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

修改redis为守护进程

启动redis

测试外界是否可以连接,是什么缘由?

1.端口未开放

2.redis.conf未配置完全(运行远程连接)

三,redis的常用命令

Redis字符串(String)

Redis哈希(Hash)

Redis列表(List)

Redis集合(Set)


本篇博客主要介绍redis的核心知识,如果没有需要的内容的话可以去redis的学习网址自行学习:

https://www.w3cschool.cn/redis/

一,Redis简介

核心存储键值对:String,list,hash,set,zset(sort set)

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

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
   它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,
   同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

学习网址:https://www.w3cschool.cn/redis/
   www.redis.cn
   www.redis.net.cn
   
Redis用途:1. 数据库 2. 缓存
集群:哨兵、主从、分片式

NoSql数据库:redis,echcache,mongodb

是直接通过键值对的方式取值,数据之间不存在关系

Sql数据库:SQLserver,Oracle,MySql

通过查询表的方式获取数据

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

二,Linux上安装redis

1.将Redis的压缩包放入客户端的存储文件夹中

解压压缩包

下载Redis运行所需要的gcc环境

yun install gcc

这也是Redis与tomcat最大的不同 tomcat并不需要

下载中途需要输入Y确定你的操作

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

进入解压目录 cd /redis-5.0.0

编译指令 make

检验指令 make install

耗时有点久,要耐心等待, 当出现黄色字体就差不多了

输入ll 可以看到其中有两个重要的文件 redis.conf和src

进入src也有两个重要文件  redis-cli和redis-server

然后我们看看没有进行下一步 修改为守护进程时启动redis是个什么情况

启动redis命令,在解压包目录下的src/redis-server

./src/redis-server

启动后我们发现已经不能在输入其他指令了,这样有影响我们的其他操作,所以我们要将它修改为守护进程 现在只能只能Ctr+C 终止redis运行

lsof -i:6379 查看正在使用的端口  

修改redis为守护进程

为了防止修改出现问题,我们先将文件备份

cp redis.conf redis(目标文件).conf.bar20221030(备份的名)

修改:将daemonize no 改为 daemonize yes

然后我们可以进入快捷目录下直接去编辑redis.conf文件

但是如果没有这种快捷方式怎么办呢?而且那个需要修改的地方又太难找到了?

教大家一个小技巧

输入指令 vi redis.conf进入编辑页面,然后直接输入/(斜杠加上)需要寻找的地方存在的关键字,我们要将将daemonize no 改为 daemonize yes

(当链接工具不能直接打开文件编辑:那么需要通过 /+"查询关键字" 快速定位单词所在的位置)

那我们就直接 输入/daemon再回车即可找到对应的位置

跳转

找到了所输入的关键字,然后可以在附近查找一下所需要修改的地方,或者我们一开始输入完整的字段就行了

点击insert开始编辑,修改为yes 再esc退出  输入:wq 为保存 :q!为不保存

启动redis

在redis解压包的目录下执行以下指令

启动redis
./redis-server ../redis.conf

测试redis启动是否成功
./redis-cli
ping

select (index)代表可以切换数据库之类的操作

测试外界是否可以连接,是什么缘由?

1.端口未开放

#开放端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#跟新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports
#防火墙状态
systemctl status firewalld
#启动防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

2.redis.conf未配置完全(运行远程连接)

注释:bind 127.0.0.1

vim redis.conf 进入配置文件

不需要点击insert,输入 /bind 127.0.0.1 回车(如果没有找到 bind 127.0.0.1 可以按“n”键搜索到下一个关键字)

注释掉:bind 127.0.0.1(在前面添加#号)

按esc键,进入下一步同样的操作

修改:requirepass 123456

不用insert 直接输入/requirepass回车找到下图位置,并将#号删除,输入root密码,esc键后输入 :wq 保存并退出

lsof -i:6379查看进程

kill -9 +进程ip 结束进程

./src/redis-server redis.conf 开启进程

客户端redis-cli链接redis,重新测试

./src/redis-cli -h 127.0.0.1 -p 6379 -a 123456
ping

三,redis的常用命令

注意:redis中的常用命令就是开发过程中,所有调用redis api中的方法

Redis字符串(String)

set key          //保存
set name zs
set age 12
set sex nan

get key          //获取
get name

type key         //查看类型
type age            //string 说明type返回的是键值对存储类型,而不是值存储类型

keys *或keys key //查看所有或者指定的key
keys *

SETEX KEY_NAME TIMEOUT VALUE    // 给键值对设置过期时间
setex zs 60 live

ttl key    // 获取键值对剩余的存活时间
ttl zs

set name zs

查看数据

Redis哈希(Hash)

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

# hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中
hset user name zs age 12 sex nv

# hget key field                          #获取指定的字段值
hget user age

# hdel key field                          #删除指定的字段值
hdel user age

# hgetall key                             #查询指定key的所有字段
hgetall user

# hexists key field                       #查询指定key中的字段是否存在
hexists user name

# hlen key                                #获取指定key中的长度
hlen user

Redis列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

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

Redis集合(Set)

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

# sadd key value1 [value2]                #向集合添加一个或多个元素
sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu

# scard key                               #获取集合中的元素数量
scard hobby

# exists key                              #是否存在
exists hobby

有序集合(sort set)

https://www.w3cschool.cn/redis/redis-sorted-sets.html

Redis-命令操作Redis相关推荐

  1. Redis-学习笔记02【Redis命令操作】

    Java后端 学习路线 笔记汇总表[黑马程序员] Redis-学习笔记01[Redis环境搭建] Redis-学习笔记02[Redis命令操作] Redis-学习笔记03[Redis持久化] Redi ...

  2. redis命令操作(1)

    一.命令操作 备注:中文官网:https://www.redis.net.cn/ 1.redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据格式. valu ...

  3. Redis-Linux中安装Redis、命令操作Redis

    目录 一.Redis简介 NoSQL与SQL的区别 二.Linux上安装redis 上传并解压redis.gz 进入 redis的解压目录,执行命令 make ​编辑 修改redis为守护进程 们测试 ...

  4. php redis命令大全,redis中key相关命令详解

    一.概述: 本文将主要讲述与Key相关的Redis命令.学习这些命令对于学习Redis是非常重要的基础,也是能够充分挖掘Redis潜力的利器.(推荐:redis视频教程) 二.相关命令列表: 命令原型 ...

  5. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)

    #-*- coding: utf-8 -*- importredis r= redis.Redis(host="126.56.74.190",port=639,password=& ...

  6. php redis命令大全,redis命令大全参考手册

    redis功能强大,支持数据类型丰富,以下是redis操作命令大全,基本上涵盖了redis所有的命令,并附有解释说明,大家可以收藏.参考. 你一定要知道的是:redis的key名要区分大小写,在red ...

  7. hash redis springboot_SpringBoot 操作 Redis 详解

    !版权声明:本博客内容均均为原创,每篇博文作为知识积累,写博不易,转载请注明出处. 目录[-] 系统环境: Redis 版本:5.0.7 SpringBoot 版本:2.2.2.RELEASE 参考地 ...

  8. python redis连接池获取后关闭_python通过连接池连接redis,操作redis队列

    在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...

  9. python redis list_Python操作redis实例小结【String、Hash、List、Set等】

    本文实例总结了Python操作redis方法.分享给大家供大家参考,具体如下: 这里介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 ...

  10. [Redis]Node操作Redis

    Node操作Redis请使用node_redis node安装方法 npm install redis GitHub网址 https://github.com/NodeRedis/node_redis ...

最新文章

  1. MPB:林科院袁志林组-一种简易的植物组织表面消毒装置
  2. 女性程序员占比超17%,平均月薪近2万 | 程序员就业大数据报告
  3. 教你从0到1搭建秒杀系统-缓存与数据库双写一致
  4. vuedraggable自由拖拽html,vue中draggable拖拽列表的使用
  5. html5折叠卡片,基于HTML5折叠卡片式下拉菜单代码
  6. Hadoop入门-单机伪分布式配置
  7. 详解pager-taglib-2.0配合SSH分页
  8. 深度学习(Deep Learning)综述
  9. 20191210每日一句
  10. 陀螺研究院 | 产业区块链发展周报(11.7—11.13)
  11. Ribbon负载均衡配置
  12. 苹果10月23日或发布iPad mini
  13. 关于TOPCODER的所有挑战、任务和GIG工作机会
  14. 艰辛坎坷的360崛起之路
  15. linux中的man命令总结
  16. [回顾]2007年木马病毒“英雄榜”,你中过几个
  17. 描述统计 | 学习笔记 (全)
  18. 科学中的人工智能革命
  19. pgSql数据库报错:permission denied for relation 的错误
  20. Java语言实现的扫雷游戏(二)

热门文章

  1. 2020研究生数模竞赛思路
  2. 笔记本电脑快速连接手机热点的方法
  3. Ubuntu三步配置scrcpy,实现手机投屏和控制
  4. unity shader景深效果
  5. 拥抱AI!人工智能如何在疫情期间重塑娱乐业?
  6. 【QQ登录------第三方登录的实现流程】
  7. 安装 pycuda 出现 PEP517 的错误
  8. 电机的反电动势了解及步进电机的基本特性
  9. codeforce 141A
  10. centos 阿帕奇无法解析php_PHP文件包含漏洞利用思路与Bypass总结手册(二)