第二章 Redis介绍及安装

1、Redis概述

Redis(远程字典服务器),是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化。是当前比较热门的NOSQL数据库之一,也被人们称之为数据机构服务器。

它提供了很多键值数据类型以用来适应不同场景下的存储需求,在目前Redis所支持的数据类型包括:

  • 字符串类型

  • 散列类型

  • 列表类型

  • 集合类型

  • 有序集合类型

  • 坐标类型

学习参考网站:Redis 教程 | 菜鸟教程

2、Redis作用

  • 内存存储和持久化:redis支持异步将内存中的数据写入到磁盘中,同时不影响继续服务

  • 取最新N个数据的操作,可以将排行或者指定信息保存在Redis集合容器内

  • 模拟类似于HttpSession(会话对象)这种需要设定过期时间的功能

  • 定时器 计数器

  • 消息的订阅和消息的发布(消息队列 主从配置)

3、Redis特点

  • 性能非常高:Redis读取速度11W次/s,写入速度8W次/s

  • 非常丰富的数据类型 :String List Hash Set ZSet等等数据类型操作

  • 原子性:Redis内所有操作都是原子性的,意味着要么成功执行,要么失败完全不执行。单个操作是原子性的,多个操作也支持事务。

  • 数据持久化:可以将内存中的数据保存在磁盘内,重启的时候可以加载进行使用

  • 其他:Redis还支持publish/subscribe 通知,key值生命周期的管理,提供了目前主流编程语言的API接口

4、Redis获取地址

复制代码
https://redis.io
http://www.redis.cn

5、Redis的安装

方式一:本地安装

#步骤1:访问官网

https://redis.io/

#步骤2:选择本地安装

GET STARTED ====> install ====> Install from source

#步骤3:下载

>> wget https://download.redis.io/redis-stable.tar.gz

#步骤4:解tar

>> tar -xzvf redis-stable.tar.gz

#步骤5:编译器的安装

>> make

>> make install

#步骤6:安装CC控件

>> dnf install gcc*

#步骤7:再次编译安装

>> make install

#步骤8:再次发生问题需要找到README.md配置文件 找到 make malloc = libc

>> make MALLOC = libc

#步骤9:再次编译安装

>> make install

如果提示为:

Hint: It's a good idea to run 'make test' ;)

INSTALL redis-server

INSTALL redis-benchmark

INSTALL redis-cli

意味着安装成功。

#步骤10:开启服务

>> redis-server

方式二:yum安装

复制代码
yum install redis -y

警告1:内存复用开启问题

解决方案:

打开/etc/sysctl.conf

写入vm.overcommit_memory=1保存

刷新sysctl -p

警告2:未指定配置文件,使用默认配置文件

使用指定配置文件redis-server /path/to/redis.conf

问题3:最大的打开文件数 增减10032(初始值1024)

设置方式:

vim /etc/security/limits.conf

追加两句并保存

root soft nofile 10032

root hard nofile 10032

相关推荐
运维行者_几秒前
理解应用性能监控
大数据·服务器·网络·数据库·人工智能·网络协议·安全
2301_769340672 分钟前
Golang怎么限制请求Body大小_Golang如何防止客户端发送过大的请求体【避坑】
jvm·数据库·python
fengxin_rou5 分钟前
Feed 三级缓存架构详解:分层设计、缓存一致性与高性能实战
spring·缓存·架构
Jetev9 分钟前
Django怎么优雅发送邮件_Python配置SMTP后端实现异步通知
jvm·数据库·python
爱编程的小新☆10 分钟前
redis缓存
redis·分布式·缓存
woxihuan12345614 分钟前
golang如何读写YAML配置文件_golang YAML配置文件读写解析
jvm·数据库·python
彳亍10114 分钟前
mysql如何实现数据库按月分表_利用分区表优化查询性能
jvm·数据库·python
木子墨51615 分钟前
系统设计面试 | 实现一个限流器:滑动窗口 → 令牌桶 → 漏桶
java·开发语言·数据结构·数据库·面试·职场和发展
m0_4636722016 分钟前
Golang怎么获取当前工作目录_Golang如何用os.Getwd获取程序运行路径【基础】
jvm·数据库·python
2401_8844541517 分钟前
mysql如何处理大量重复值索引_mysql索引存储特征分析
jvm·数据库·python