Redis入门 - Redis概念和基础

news2024/11/23 10:31:42

原文首更地址,阅读效果更佳!
Redis入门 - Redis概念和基础 icon-default.png?t=N5F7https://www.codermast.com/database/redis/introduce-redis.html

什么是NoSQL

  • NoSQL,泛指非关系型的数据库。
  • NoSQL最常见的解释是 "non-relational", 很多人也说它是"Not Only SQL"
  • NoSQL仅仅是一个概念,泛指非关系型的数据库
  • 区别于关系数据库,它们不保证关系数据的ACID特性
  • NoSQL是一项全新的数据库革命性运动,提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入
  • 常见的NoSQL数据库有:RedisMemCacheMongoDB

NoSQL与SQL

SQLNoSQL
数据结构结构化非结构化
数据关联关联无关联
查询方式SQL查询非SQL查询
事务特性ACIDBASE
存储方式磁盘内存
扩展性垂直水平
使用场景1.数据结构固定
2.相关业务对数据安全性、一致性要求较高
1.数据结构不固定
2.对一致性、安全性要求不高
3.对性能要求高

NoSQL数据库的常见种类

  1. 键值类型(Redis)
  2. 文档类型(MongoDB)
  3. 列类型(HBase)
  4. Graph类型(Neo4j)

认识Redis

Redis诞生于2009年,全称为 Remote Dictionary Server,远程字典服务器,是一个基于内存的键值型的NoSQL数据库。

Redis特征

  • 键值型(Key-Value),value支持多种不同的数据结构,功能丰富。
  • 单线程,每个命令具备原子性。Redis6.0开始对网络请求启用多线程,但是对命令的执行依然是单线程。
  • 低延迟,速度快(基于内存、IO多路复用、良好的编码)
  • 支持数据持久化
  • 支持主从集群、分片集群
  • 支持多语言客户端(C语言、Java、C++、Python等)

安装Redis

由于Redis的作者仅编写了Linux环境下的版本,且在生产环境时大多数使用的Linux系统,故我们在Centos操作系统内进行安装。

安装Redis

yum install redis

Redis安装

其他安装

除了上述安装方式以外还有很多安装方式,这里不再赘述。各种环境的安装方式,可以参考Redis官方的安装文档,地址:https://redis.io/docs/getting-started/installation/open in new window

Redis启动的三种方式

前台启动

安装完Redis以后,在任意目录下输入redis-server命令即可启动Redis。

前台启动Redis

前台启动Redis后,就是如上界面,此时命令终端会一直响应Redis服务,而无法进行其他操作,要进行其他指令操作时,则必须关闭Redis服务,很不方便,此时我们可以使用后台启动。

后台启动

如果要让Redis以后台方式启动,则必须修改Redis配置文件,配置文件所在目录就是Redis安装目录。

修改Redis配置文件redis.conf文件中的配置项。

# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即为后台运行
daemonize yes 
# 密码,设置后访问Redis必须输入密码,此时密码即为 codermast
requirepass codermast

此时启动Redis时需要加上配置文件,即可后台启动redis。

redis-server redis.conf

开机启动

  1. 要实现开机启动,需要配置一个系统服务文件
vi /etc/systemd/system/redis.service

   2. 将以下内容作为文件内容:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

3.重载系统服务

systemctl daemon-reload

  4. 开启redis开机自启动

systemctl enable redis

操作Redis指令

  • 启动:systemctl start redis
  • 停止:systemctl stop redis
  • 重启:systemctl restart redis
  • 查看状态:systemctl status redis

Redis客户端

Redis本身仅有一个基于命令行的客户端,但是这种方式在我们使用过程中不太直观,所以市面上就出现了很多的客户端,但主要分为三种类型:命令行客户端、图形化客户端、编程语言客户端。

命令行客户端

Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:

redis-cli [options] [commonds]

这里options为选项,commonds为命令,加上[]为可选项。这也是一种常见的文档编写规范。

Redis命令行连接

注意

这里要注意的是,在使用redis-cli客户端连接redis服务时,需要保证redis服务是开启的,无论是在远程连接或者本地连接,这是新手阶段容易忽视的一点。

其中常见的options有:

  • h 127.0.0.1:指定要连接的redis节点的IP地址,默认是127.0.0.1
  • p 6379:指定要连接的redis节点的端口,默认是6379
  • a 132537:指定redis的访问密码

其中的commonds就是Redis的操作命令,例如:

  • ping:与redis服务端做心跳测试,服务端正常会返回pong
  • 不指定commond时,会进入redis-cli的交互控制台。

图形化客户端

图形化客户端,顾名思义就是通过可视化的软件,来对redis数据库进⾏操作。 图形化界⾯的客户端种类很多,可以选择⾃⼰喜欢的⼀款就可以,这⾥我选择的是Another Redis Desktop Manager这款,⽀持Mac、Linux、Windows系统,更重要的是还免费。

笔者的电脑系统为macos,故就演示Mac环境下的图形化客户端,windows系统下的客户端种类很多,网络上的资源也很多,这里就不赘述。

Redis图形化客户端-Another redis desktop manager

Github地址:https://github.com/qishibo/AnotherRedisDesktopManager/releases/tag/v1.5.9open in new window

Gitee地址:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases/tag/v1.5.8open in new window

相关信息

对于Github访问慢的⽤户,可以直接在国内的Gitee中下载安装,⼀般来说两者都没有什么差别,唯⼀的区别就在于Github上的更新⽐较及时。

编程语言客户端

编程语言客户端也有很多种,如Java语言的Jedis客户端,Go语言的Go-Redis客户端等。

具体的可以参考Redis官方提供的文档,地址:https://redis.io/docs/clients/open in new window

几个Java语言的客户端展示。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot整合Redis

文章目录 一、Redis概述二、使用Spring Boot 整合 Redis(一)搭建Redis环境(二)下载和安装Redis可视化管理工具(三)创建Spring Boot项目RedisDemo(四)创建实体类1、创建地址实体类 - …

建立和使用Python自定义模块

文章目录 (一)现状以及问题(二)Python模块(2.1)包的结构(2.2)包的位置(2.2.1)site-packages目录(2.2.2)dist-packages目录 &#xff0…

更新阅读量时的常见错误:脏读

最近在对开发完的项目进行测试,于是用到了Jmeter来进行压力测试…… 这里准备压测的是一个获取详情的方法,在获取详情的通知更新阅读量! 上图中代码的逻辑是: 1. 根据ID获取实体 2. 判断实体是否存在 3. 使用三目运算获…

【c++11】c++1特性

c11 c11简介列表初始化std::initializer_list autodecltypenullptr 结语 c11简介 从C0x到C11,C标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于C98/03,C11则带来了数量可观的变化,其中包含了约140个新特性,以…

datax-web

【DataX-Web的搭建(Windows/Linux环境)_datax源码部署_zxj19880502的博客-CSDN博客 mirrors / WeiYe-Jing / datax-web GitCode https://github.com/WeiYe-Jing/datax-web/blob/master/userGuid.md 安装使用 这里只记录关键点 1、先安装datax、参考…

LED太阳能感应庭院灯开发方案

在庭院装修的时候,常会使用一些外部美观的照明灯,提供户外照明。为此,宇凡微推出了LED太阳能感应庭院灯方案,庭院灯控制芯片采用宇凡微YF单片机。 一、LED太阳能感应庭院灯方案的原理 太阳能感应庭院灯根据不同的设计需求&#xf…

dp算法篇Day4

"我把每一天都当做新开始&#xff0c;新革命。" 16、买卖股票的最佳时机含手续费 (1) 题目分析 完成一笔交易才算达成交易。但其实你可以将手续费加在任意一处上。 (2) 算法原理 class Solution { public:int maxProfit(vector<int>& prices, int fee)…

从敏捷到精益-漫谈敏捷实践

敏捷宣言与12条原则 让我们一起来回顾一下敏捷宣言和12条原则&#xff0c;不了解这些&#xff0c;怎么进行实践呢。 敏捷宣言&#xff1a; 个体与交互 胜过 过程与工具 可以工作的软件 胜过 面面俱到的文档 客户协作 胜过 合同谈判 响应变化 胜过 遵循计划 敏捷12条原则 1、…

Python学习49:词频统计

类型&#xff1a;文件‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 描述‪‬‪‬…

WPS表格:使用技巧

文章目录 1、时间1&#xff09;调整时间格式① 连接符② 将“常规、短日期、长日期”格式下的时间调整为自定格式③出现“数字”的情况④ 日期格式方便筛选、统计&#xff1b;转换格式&#xff1b;计算⑤出现#的几种情况⑥ 用“数据---分列”统一变成日期格式 2&#xff09;计算…

SpringBatch从入门到实战(三):作业参数

一&#xff1a;JobParameters传参 api获取 Spring Batch认为一个Job的唯一依据是 job_name hash(JobParameters) 作为联合主键盘 &#xff0c;所以每次执行都会传入一个唯一变动的参数&#xff0c;spring batch 就会认为这是不同的job&#xff0c;就可以重复执行同一个job。 …

Excel中数据转换成甘特图(wps)

数据准备 Excel数据如下表所示&#xff1b; 耗时这一列需要有&#xff0c;没有的话先添加耗时列&#xff1a;单元格E3-C31 自动计算耗时&#xff1b; 转换甘特图 1、调整数据 开始时间列&#xff0c;单元格格式 设置为 常规 2、插入堆积条形图 选中 关键人物 开始时间 和…

Axure必备入门知识

导语 Axure作为专业的原型工具&#xff0c;深受众多产品经理的喜爱&#xff0c;同样也是产品经理应聘的必备技能工具。本期小编将从软件安装及汉化、软件授权、软件使用、案例学习、使用问答、元件库、原型模板及实战原型、原型托管演示等方面介绍Axure必备入门知识&#xff0c…

基于vue搭建的网站如何防范XSS攻击

1.对于从接口请求的数据&#xff0c;尽量使用{{}}加载,而不是v-html ue中的大括号会把数据解释为普通文本。通常如果要解释成html代码则要用v-html。而此指令相当于innerHTML。虽然像innerHTML一样不会直接输出script标签&#xff0c;但也可以输出img&#xff0c;iframe等标签…

国产自主GPU架构“天狼星”在北京亮相

GPU&#xff08;Graphic Processing Unit&#xff09;即图形处理器&#xff0c;是数字世界图形内容生成的基石&#xff0c;不管是桌面应用、游戏、电影、数字孪生还是元宇宙&#xff1b;与此同时&#xff0c;强大的并行计算能力业已成为各种应用加速的主流手段&#xff0c;正广…

混淆矩阵和语义分割评价指标

语义分割评价指标 混淆矩阵和评价指标 https://cocodataset.org/#stuff-eval 混淆矩阵&#xff08;Confusion Matrix) 指标公式准确率、正确率 T P T N ТР T N F P F N \frac{TP TN}{ ТР TNFPFN} ТРTNFPFNTPTN​精确率、精度 P T P ТР F P P \frac{TP }{ ТР F…

VLAN基础知识1_整体介绍

目录 1.VLAN概述 2.VLAN帧格式 3.VLAN端口类型 4.缺省VLAN 5.VLAN打标签和去标签 6.VLAN划分的方法 1.VLAN概述 VLAN&#xff08;虚拟局域网&#xff09;是一种逻辑上划分网络设备的技术&#xff0c;用于将单个物理网络划分成多个虚拟网络。VLAN可以将网络中的设备分组&…

uni-app开发壁纸图像小程序 瀑布流、懒加载展示

标题&#xff1a;使用uni-app开发壁纸图像小程序&#xff1a;瀑布流与懒加载展示 引言&#xff1a; 在今天的移动应用市场中&#xff0c;壁纸图像小程序备受欢迎。为了提高用户体验&#xff0c;我们可以使用uni-app框架来开发这样的小程序&#xff0c;并实现瀑布流和懒加载展示…

Mybatis常见问题

Mybatis执行流程 理解各组件的联系Sql的执行过程&#xff08;参数映射&#xff0c;sql解析&#xff0c;执行和处理结果&#xff09;首先通过mybatis-config.xml文件去加载连接数据库的相关配置&#xff0c;加载sql的映射文件 通过mybatis的配置文件然后去构建会话工厂SqlSess…

chatgpt赋能python:Python整数筛选方法

Python整数筛选方法 Python是一种极其强大的编程语言&#xff0c;特别适合用于数据科学和数字计算。在数字计算中&#xff0c;经常需要筛选出指定范围内的整数。下面将介绍几种Python中筛选整数的方法。 1. 利用循环筛选 最简单的方法是使用循环&#xff0c;逐个检查每个数字…