redis基础

目录

前言

一、概述

1.NoSQL

2.Redis

二、安装

1.编译安装

2.RPM安装

三、目录结构

四、命令解析

五、redis登录更改

六、数据库操作

(一)、登录数据库

1.本地

 2.远程登录

 (二)、数据操作

 1.数据库操作

2.数据操作

七、Redis持久化

1.RDB模式

2.AOF模式

总结



前言

Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。


一、概述

1.NoSQL

非关系型数据库
内存存储

类型
    文档型数据库(Document-oriented database)如MongoDB;
    列族数据库(Column-family database)如HBase、Cassandra等;
    图形数据库(Graph database)如Neo4j、ArangoDB等;
    键值对数据库(Key-value database)如Redis、Memcached等;
    对象数据库(Object-oriented database)如db4o等。

应用场景
    缓存:Redis最常用的应用场景就是缓存,它可以缓存各种类型的数据,如数据库查询结果、API返回结果等,以提高应用程序的响应速度和并发性能。
    分布式锁:Redis的分布式锁可以确保在分布式系统中对某个资源的互斥访问,避免多个节点出现并发操作的问题。
    计数器:Redis支持对计数器的操作,能够方便地实现各种计数器的功能,如网站访问次数计数、订单数量计数等。
    会话管理:Redis可以用来管理会话信息,实现会话的状态存储和共享,避免了单点故障的问题。
    消息队列:Redis支持发布订阅模式,可以作为一个轻量级的消息队列使用,实现异步消息处理和任务派发等功能。

2.Redis

Remote Dictionary Server    远程字典服务

 官网
    https://www.redis.net.cn/

内存存储、持久化
键值对存储

监听端口号    6379

数据类型
    字符串(string)
    哈希值(hash)
    列表(list)
    集合(set)
    位图(bitmap)

二、安装

1.编译安装

wget http://download.redis.io/releases/redis-5.0.8.tar.gz

tar xf  tar包

make && make install

redis-server redis.conf

2.RPM安装

基础环境(防火墙设置、宽容模式、静态IP、可以ping通百度)

yum install -y epel-release(可重复安装直至最新版本)
yum install -y redis

systemctl start redis

默认监听127.0.0.1地址

三、目录结构

/etc/redis.conf

主配置文件
    bind 127.0.0.1
        修改监听地址
    port 6379
        修改监听端口号
    pidfile 
        指定通过该配置文件启动
reids进程后的PID文件名称
    loglevel
        定义日志级别
    logfile
        定义日志存储路径
    databases
        指定默认数据库数量
    save
        定义单位时间内key的改变次数
    dbfilename
        定义存储RDB持久化数据的文件名称
    dir
        定义RDB与AOF文件的存储目录
    appendonly
        AOF的启停
    appendfilename
        定义AOF持久化文件的名称
    appendfsync
        定义AOF数据同步间隔
    requirepass 
        设置登录redis的密码

/var/lib/redis
    持久化文件存储目录
/var/log/redis
    日志文件存储目录
/var/run/redis
    PID文件存储目录
 

四、命令解析

启动

redis-server  redis.conf(文件名)| systenctm start redis

redis登录命令

redis-cli(监听默认回环)

-h
    redis服务器IP
-p
    指定访问端口号
-a
    指定登录密码
-n
    指定数据库编号

redis-check-rdb
    检查RDB文件
redis-check-aof
    检查AOF文件

五、redis登录更改

问题:更改完port后,systemctl启动redis异常

解决办法:使用redis-server /etc/redis.conf·

若要redis后台运需修改配置文件 daemonize yes

建议用netstat,比ss看的清楚 

六、数据库操作

(一)、登录数据库

1.本地

监听回环地址:redis-cli

监听本地网卡地址:redis-cli -h IP -p 端口号
    

 2.远程登录

192.168.127.144主机

192.168.127.145主机 

或者直接加密码

 (二)、数据操作

 1.数据库操作

select 数据库编号

2.数据操作

set( set key value)
    设置键值对
  
keys
    keys *  :查看所有键的名称
    keys 键名称:查看一个键是否存在
        
get(取出键值对)
    get 键(键不存在则返回空)


del(del key)
    删除键值对
    
flushall
    清空所有数据库中的数据


rename(rename oldkey newkey)
    重命名键名称
    不论更名后的键是否存在都会覆盖原有键,
并将改名前的键的值赋予改名后的键
    
renamenx( renamenx oldkey newkey)
    重命名键名称
    假如改名后键名称存在则更改不成功
  
move(move key dbnumber)
    移动键值对到指定数据库
    假如目标数据库中存在同名键则移动失败


ttl(ttl key)
    查看键值对的生命周期
  
        -1
            永久
        -2
            已过期


expire(expire key seconds)
    设置键值对的存储周期
    

设置、查看、移动

 生命周期查看与设置,删除

 重命名、清空所有

七、Redis持久化

1.RDB模式

默认持久化

/var/lib/redis/dump.rdb

数据库启动时会读取

触发条件

redis进程退出
    宕机
    redis程序崩溃

手动保存(触发RDB)
    save

2.AOF模式

/etc/redis.conf

appendonly.aof

默认进程启动时读取

appendonly  yes  为开启,可以与RDB同时使用

重启服务在/var/lib/redis/生成文件appendonly.aof,后续操作将录入此文件中


文件为空时会有空格,不为空,重启服务后登录异常 

 

 解决办法

vim appendonly.aof在里随意插入后删除整行,重启服务登录即可

 

 

总结

redis基础操作是非关系型数据库的常用代表,可操作的数据类型较为广泛,更多的内容需要根据自身的需要去进行扩展,才能掌握牢固此内容。

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

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

相关文章

C++笔记之将定时器加入向量并设置定时器的ID为i

C笔记之将定时器加入向量并设置定时器的ID为i code review! 文章目录 C笔记之将定时器加入向量并设置定时器的ID为i关于代码中的void operator()() 运行 代码 #include <chrono> #include <iostream> #include <thread> #include <vector>// 定义定时…

京东秋招攻略,备考在线测评和网申笔试

京东秋招简介 伴随着社会竞争越来越激烈&#xff0c;人们投递简历的岗位也变得越来越多元&#xff0c;而无论人们的选择面变成何样&#xff0c;那些知名度较高的企业&#xff0c;永远都备受关注&#xff0c;只要其一发布招聘公告&#xff0c;总有人第一时间踊跃报名。而作为这…

linux自启动程序

嵌入式linux下有软件需要自启动&#xff0c;只需要在/etc/init.d/rcS末尾添加所要启动的程序即可&#xff0c;开机就会自动运行 vi /etc/init.d/rcS在文件末尾添加 例&#xff1a;

Zabbix6 对接飞书告警

文章目录 Zabbix对接飞书告警背景创建飞书群组Zabbix配置创建告警媒介类型创建动作用户关联飞书告警 Zabbix对接飞书告警 背景 运维 你看下他的进程是不是挂了&#xff0c;之前在9点28分有发消息的&#xff0c;这次没有发消息 哐哐哐的去看了一通&#xff0c;确实有个进程之前…

Nginx的优化和防盗链

一、Nginx的优化 1、隐藏版本号 curl -I http://192.168.79.28 #查看信息&#xff08;版本号等&#xff09;方法一&#xff1a;修改配置文件 vim /usr/local/nginx/conf/nginx.conf vim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type ap…

【Grafana】中文界面配置 v10.0.3

比如通过 docker run -d -p 3000:3000 -v /e/code/monitor/grafana/grafana.ini.txt:/etc/grafana/grafana.ini grafana/grafana运行一个容器&#xff08;最新是v10.0.3&#xff09;。 在 /admin/settings 可以看到 users 部分有一个 default_language 配置。 所以在挂载到 …

在vue项目使用数据可视化 echarts ,柱状图、折线图、饼状图使用示例详解及属性详解

官网地址&#xff1a;Apache ECharts ​一、下载插件并在页面中引入 npm install echarts --save 页面导入&#xff1a; import * as echarts from echarts 全局导入&#xff1a; main.js 中&#xff0c;导入并注册到全局 import echarts from echarts Vue.prototype.$echart…

【算法】双指针——leetcode盛最多水的容器、剑指Offer57和为s的两个数字

盛水最多的容器 &#xff08;1&#xff09;暴力解法 算法思路&#xff1a;我们枚举出所有的容器大小&#xff0c;取最大值即可。 容器容积的计算方式&#xff1a; 设两指针 i , j &#xff0c;分别指向水槽板的最左端以及最右端&#xff0c;此时容器的宽度为 j - i 。由于容器…

2、简单上手+el挂载点+v-xx(v-text、v-html、v-on、v-show、v-if、v-bind、v-for)

官网&#xff1a; vue3&#xff1a;https://cn.vuejs.org/ vue2&#xff1a;https://v2.cn.vuejs.org/v2/guide/ 简单上手&#xff1a; 流程&#xff1a; 导入开发版本的Vue.js <!--开发环境版本&#xff0c;包含了有帮助的命令行警告--> <script src"https…

SD-MTSP:光谱优化算法LSO求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、光谱优化算法LSO 光谱优化算法&#xff08;Light Spectrum Optimizer&#xff0c;LSO&#xff09;由Mohamed Abdel-Basset等人于2022年提出。 参考文献&#xff1a; [1]Abdel-Basset M, Mohamed R, Sallam KM, Chakrabortty RK. Light Spectrum Optimizer: A Novel Physi…

React Native 样式布局基础知识

通过此篇笔记能够学习到如下的几个知识点 在 React Native 中使用样式的一些细节了解 React Native 的 Flex 布局概念了解 React Native 的 flex 布局属性React Native 如何添加多样式属性React Native 中绝对布局和相对布局 React Native 中的 Flex 布局概念 1、主轴和交叉…

JVM运行时五大数据区域详解

前言&#xff1a; java虚拟机再执行Java程序的时候把它所拥有的内存区域划分了若干个数据区域。这些区域有着不同的功能&#xff0c;各司其职。这些区域不但功能不同&#xff0c;创建、销毁时间也不同。有些区域为线程私有&#xff0c;如&#xff1a;每个线程都有自己的程序计数…

《Zookeeper》源码分析(七)之 NIOServerCnxn的工作原理

目录 NIOServerCnxnreadPayload()handleWrite(k)process() NIOServerCnxn 在上一节IOWorkRequest的doWork()方法中提到会将IO就绪的key通过handleIO()方法提交给NIOServerCnxn处理&#xff0c;一个NIOServerCnxn代表客户端与服务端的一个连接&#xff0c;它用于处理两者之间的…

BGP实验

题目 IP地址配置 172.16.X.0/24为模拟用户环回接口接口 172.16.7.X/32为BGP邻居关系建立的环回接口 R1&#xff1a; R2&#xff1a; R3&#xff1a; R4&#xff1a; R5&#xff1a; R6&#xff1a; R7&#xff1a; R8&#xff1a; BGP邻居关系建立、宣告和反射器、联邦配置 R…

Web压测工具http_load原理分析

01、前言 http_load是一款测试web服务器性能的开源工具&#xff0c;从下面的网址可以下载到最新版本的http_load&#xff1a; http://www.acme.com/software/http_load/ 这个软件一直在保持着更新&#xff08;不像webbench&#xff0c;已经是十年的老古董了。 webbench的源…

定制 ChatGPT 以满足您的需求 自定义说明

推荐&#xff1a;使用 NSDT场景编辑器 快速助你搭建可二次编辑的3D应用场景 20 月 <> 日&#xff0c;OpenAI 宣布他们正在引入带有自定义说明的新流程&#xff0c;以根据您的特定需求定制 ChatGPT。 什么是自定义说明&#xff1f; 新的测试版自定义指令功能旨在通过防止…

【C++从0到王者】第二十站:模板进阶

文章目录 前言一、typename 和 class的一些区别二、非类型模板参数1.非类型模板参数介绍2.array容器 三、模板的特化1.函数模板的特化2.类模板的特化1.全特化2.偏特化&#xff08;半特化&#xff09; 三、模板的分离编译四、总结 前言 在前面我们使用模板主要是为了解决两类问…

Kubernetes(K8s)入门

一、Kubernetes是什么 Kubernetes是什么? 首先&#xff0c;它是一个全新的基于容器技术的分布式架构领先方案。这个方案虽然还很新&#xff0c;但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果。确切地说&#xff0c;Kubernetes是谷歌严格保密十几年的…

湘大 XTU OJ 1097 排序 题解:c++ 函数库的使用 快速排序 归并排序 冒泡排序

一、链接 1097 排序 二、题目 Description N个整数&#xff0c;将其排序输出。 输入 第一行是一个整数K&#xff08;1<K<20&#xff09;&#xff0c;表示有多少个样例&#xff0c;每个样例的第一行是一个整数N&#xff08;1<N<1,000&#xff09;和一个字符X&…

【Nginx】Nginx的优化和防盗链

nginx版本迭代比较快 *工作中&#xff0c;在发版期&#xff0c;通常先备份文件并备注时间&#xff0c;方便后期故障后回档 例&#xff1a; cp nginx.conf nginx.conf.bak.2023.0805 隐藏版本号的两种方法*** 1.修改配置文件 vim /usr/local/nginx/conf/nginx.conf 在http模…