Redis 服务器全攻略

Redis 安装全攻略:在线、离线与交叉编译 在当今的数据处理领域,Redis 作为一个开源的内存数据结构存储系统,凭借其高性能、丰富的数据结构支持等特性,成为了众多开发者的首选。今天,我们就来详细聊聊 Redis 在不同操作系统上的在线安装方法,以及在 ARM64 环境下的离线交叉编译和部署过程。 阅读详情

介绍:

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、hash表、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

下载地址:

wget http://redis.googlecode.com/files/redis-2.0.0-rc4.tar.gz


安装:

  Redis在各平台的安装相对比较简单,其中最关键的是其配置文件的设置,让我们先了解一下redis配置文件中各个参数的含义。

1.    Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,即后台运行。

daemonize no

1.      当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

pidfile /var/run/redis.pid

2.      指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字

port 6379

3.      绑定的主机地址

bind 127.0.0.1

4.      当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

timeout 300

5.      指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose

loglevel verbose

6.      日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null

logfile stdout

7.      设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id

databases 16

8.      指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

save <seconds> <changes>

9.      Redis默认配置文件中提供了三个条件:

save 900 1

save 300 10

save 60 10000

分别表示900秒(15分钟)内有1次更改,300秒(5分钟)内有10次更改以及60秒内有10000次更改。

 

10.   指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

rdbcompression yes

11.   指定本地数据库文件名,默认值为dump.rdb

dbfilename dump.rdb

12.   指定本地数据库存放目录,指定该目录即指定了redis.conf文件及数据库的目录。

dir ./

13.   设置当本机为slave服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步

slaveof <masterip> <masterport>

14.   当master服务设置了密码保护时,slav服务连接master的密码

masterauth <master-password>

15.   设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭

requirepass foobared

16.   设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

 

maxclients 128

17.   指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区

maxmemory <bytes>

18.   指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no

appendonly no

19.   指定更新日志文件名,默认为appendonly.aof

appendfilename appendonly.aof

20.    指定更新日志条件,共有3个可选值:

  no:表示等操作系统进行数据缓存同步到磁盘(快)
  always
:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
  everysec
:表示每秒同步一次(折衷,默认值)
   appendfsync everysec

21.   指定是否启用虚拟内存机制,默认值为no,简单的介绍一下,VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析Redis的VM机制)

vm-enabled no

22.   虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享

vm-swap-file /tmp/redis.swap

23.   将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据 就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0

vm-max-memory 0

24.   Redis swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的数据大小来设定的,作者建议如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很大大对象,则可以使用更大的page,如果不 确定,就使用默认值

vm-page-size 32

25.   设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,,在磁盘上每8个pages将消耗1byte的内存。

vm-pages 134217728

26.   设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4

vm-max-threads 4

27.   设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启

glueoutputbuf yes

28.   指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法

hash-max-zipmap-entries 64

hash-max-zipmap-value 512

29.   指定是否激活重置哈希,默认为开启(后面在介绍Redis的哈希算法时具体介绍)

activerehashing yes

30.   指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件

include /path/to/local.conf


 修改redis的配置文件,如没有修改,则使用默认设置启动redis服务:

  解压目录:>redis-server.exe redis.conf


   

如果修改过配置文件的dir目录则加上配置目录:path/redis.conf

 

  redis-cli.exe:命令行客户端,测试redis的存取。  

 

  解压目录:>redis-cli.exe -h 127.0.0.1 -p 6379


字符型:

  设置一个Key并获取返回的值:
   $> ./redis-cli set mykey somevalue
   OK
   $> ./redis-cli get mykey
   Somevalue

MySQL数据实时同步Redis全攻略 本文介绍了通过Canal实现MySQL到Redis数据同步的方案。主要内容包括:1)环境准备,需开启MySQL的ROW模式binlog并创建Canal用户;2)Canal安装配置,包括服务部署和实例参数设置;3)开发数据处理逻辑,解析binlog并设计Redis存储格式;4)启动验证流程。文中提供了详细的操作步骤和Java伪代码示例,并强调了数据格式设计、幂等性处理等关键点。该方案对业务侵入小,能有效保证数据一致性,适合作为数据库与缓存间的增量同步方案。 阅读详情

相关推荐

《Redis集群搭建终极指南:实战全攻略》

本文详细介绍了Redis集群的搭建过程,从环境准备到节点配置、启动以及数据管理等。通过以上步骤,读者应能够在自己的环境中成功搭建并管理Redis集群。本文还涵盖了集群的管理与维护策略,包括故障处理、备份和性能优化等内容。希望本篇文章能帮助到你,如果有任何问题或疑问,欢迎讨论交流!如需深入了解Redis集群的更多特性与配置选项,可以参考Redis官方文档。

1399

Redis是部署在应用服务器上好还是独立部署更好?

一般情况下,生产环境推荐将 Redis 独立部署,以保障性能、稳定性和可维护性。只有在资源极度受限或非关键的小型项目中,才考虑与应用共部署。✅结论:独立部署更好,尤其是生产环境。

2403_89345764的博客 163

【Redis】到底需不需要管理?从 Commander 到数据优化的全攻略

Redis管理是运维必修课,不当管理会导致内存溢出、查询延迟等严重问题。文章介绍了Redis-Commander等可视化工具如何提升管理效率,并通过电商案例展示内存优化、大Key治理等实战技巧。针对数据清空等危险操作,提出分批删除、过期替代等安全方案。最后探讨Redis管理的未来趋势,包括云原生、边缘计算等场景下的优化方向。核心观点:Redis管理需要体系化建设,从基础工具到高级优化策略缺一不可。

半抹灯芯的博客 1020

REDIS 学习网页记录

Redis介绍及实践分享:介绍的比较详细,比较好的入门ppt 解密Redis持久化:RDB和AOF 介绍 NoSql的选择比较(redis) NoSQL数据库之Redis数据库管理 Redis NoSQL系统 包含:C#客户端 ServerStack.Redis使用介绍 Redis特点: 1:与Memcached一样使用内存存储,管理 2:支持VM

我的地盘 919

00-Redis 小白入门全攻略:从初识到进阶,避开 90% 的学习坑

这是一篇 Redis 小白专属入门攻略!用大白话拆解 Redis 是什么、能做啥,手把手教环境搭建,还规划了从基础操作到集群优化的科学路径,避开 90% 的学习坑,帮你快速上手 Redis,轻松从入门进阶到高手。

蜗牛老师,专注编程领域 2676

24、Redis缓存、Ubuntu部署与Netlify前端部署全攻略

本文详细介绍了如何通过Nginx配置服务API,结合Uvicorn和Gunicorn构建高效的后端架构,并使用Redis缓存提升数据访问速度。同时,还涵盖了如何在Ubuntu系统上部署Redis,以及在Netlify上快速部署React前端项目的方法。文章还提供了关于MongoDB数据建模、FastAPI开发最佳实践以及未来技术拓展的建议,旨在帮助开发者构建高性能、可扩展的应用程序。

leaf8的博客 55

Redis从客户端登录服务器

本次演示是一个服务端服务器 ip:192.168.56.56    一个客户端服务器ip:192.168.56.57 从192.168.56.56本地客户端访问192.168.56.56本地数据库服务 [root@shanxi src]# ./redis-cli 127.0.0.1:6379> ping PONG 从192.168.56.57本地客户端访问192.168.56.56远程

翔之天空的专栏 1万+

解锁Redis:从安装到配置的全攻略

本文详细讲解 Redis 在不同系统的安装与配置。先说明各系统需求及必备工具,再分述 Windows、Linux(含 Ubuntu、CentOS)、macOS 的安装步骤,包括下载、解压、启动服务等。还详解核心配置项,如端口、密码、内存策略、持久化方式,并给出常见问题解决方案,助开发者快速部署 Redis。

邓邓子的博客 1914

HoRain云--云端Redis部署:托管与自建全攻略

《云端Redis部署指南》摘要 本文系统介绍了云端部署Redis的多种方式:1)推荐使用云厂商托管服务(AWS/阿里云/腾讯云),详述各平台配置要点;2)云服务器自建方案,包含安装步骤与安全加固措施;3)Kubernetes容器化部署方法。文章着重对比了托管服务与自建方案的优劣势,强调了持久化备份、高可用配置、监控告警等关键注意事项,并给出"托管服务适合多数场景,自建适合深度定制"的总结建议,为不同需求场景提供清晰的部署路径。

2401_86544677的博客 759

Element-UI全面入门与实战技巧

Element-UI 是一套基于 Vue 2.0 的桌面端组件库,由饿了么前端团队开发并维护。它提供了一系列丰富的 UI 组件,旨在帮助开发者快速构建高效、美观的 Vue 应用程序。Element-UI 是一款遵循 Ant Design 设计规范的 Vue UI 库,它涵盖了从按钮、输入框、选择器到表格、标签、进度条等众多常用的界面元素。Element-UI 的组件不仅功能全面,而且易于定制,使得开发者可以快速实现个性化的页面设计。Element-UI 的特点包括:在使用 Element-UI 之前,需要确

全世界的博客 2863

GraphRAG + Ollama 本地化部署实战:从零搭建知识图谱问答系统

本文详细介绍了如何在本地部署GraphRAG与Ollama,搭建一个完全自主可控的知识图谱问答系统。通过逐步指导环境配置、项目初始化、核心设置修改以及源码适配,成功将GraphRAG从依赖云端OpenAI API转向本地Ollama服务,并选用qwen2.5:7b和nomic-embed-text模型。该方案有效解决了数据隐私与持续API成本问题,特别适合中小企业构建内部知识库或智能客服系统。

x2y3z4a5b的博客 919

【服务器与部署 12】数据库生产环境部署实战:MySQL、PostgreSQL、Redis高可用配置全攻略

本文深入探讨MySQL、PostgreSQL、Redis三大主流数据库在生产环境中的部署配置策略。从基础安装到高可用架构,从性能优化到监控告警,提供完整的数据库部署解决方案。通过实战案例和最佳实践,帮助运维工程师构建稳定、高效、可扩展的数据库服务。

熵数实验室 1572

Python Selenium调用IE11报错全解析:从环境配置到稳定运行

在Web自动化测试领域,Selenium作为主流的跨浏览器测试框架,其核心原理是通过WebDriver协议与不同浏览器的驱动程序进行通信,实现对浏览器行为的模拟与控制。这一技术为软件测试的自动化、回归测试的效率提升提供了重要价值,广泛应用于金融、政务等对遗留系统兼容性要求高的行业场景。然而,当技术栈涉及过时的浏览器如IE11时,环境配置的复杂性显著增加,特别是Python与Selenium的组合常遭遇驱动兼容性、安全设置等挑战。本文聚焦于解决Python Selenium驱动IE11时的典型报错问题,深入剖

weixin_28834765的博客 322

告别Redis连接混乱:AnotherRedisDesktopManager连接池管理全攻略

你是否曾在管理多个Redis服务器时遭遇连接超时、操作卡顿?是否因频繁切换服务器而丢失工作状态?AnotherRedisDesktopManager(以下简称ARDM)的连接池管理功能将彻底解决这些问题。本文将带你从配置到实战,全面掌握连接池优化技巧,让多服务器管理如丝般顺滑。 ## 连接池核心原理与架构 ARDM采用基于ioredis的连接池架构,通过智能复用TCP连接减少握手开销。核心实现...

gitblog_00375的博客 1170

【Bug已解决】Context window exceeded / Token limit reached — Claude Code 上下文窗口超限解决方案

Claude Code 长会话中报上下文窗口/Token 超限,本质是对话历史、文件内容、工具结果累积超过 200K 上限。文中给出 /clear、/compact、分批读大文件、限制工具输出、配置 autoCompact 等完整方案。

一键难忘的博客 6728

S速度曲线轨迹规划(普通变频位置闭环控制算法详细介绍+SCL代码)

位置控制用PD控制器,详细内容介绍请查看下面博客文章:PD控制器算法详细解读_RXXW_Dor的博客-优快云博客鉴于积分和微分在工程上的大量应用,这篇博文主要讲解工程上的如何求导f'(x),导数反映的是函数(信号)的变化率,牛顿也是在研究运动的时候提出了微积分的概念,我们知道反映位移变化的快慢程度是速度v(t),反映速度变化快慢程度的物理量是加速度(速度的变化率)。

RXXW_Dor的博客 3886

【Redis】免费Redis图形化客户端全攻略

精选四款主流免费Redis图形化管理工具对比指南: 1.AnotherRedisDesktopManager - 开源跨平台工具,支持集群/哨兵模式,提供SSH/SSL连接和暗黑主题,官网提供各系统安装包。2.RedisInsight - 官方出品,内置CLI和内存分析功能,支持Redis模块,可通过官网或Snap商店安装。3.TinyRDM - 轻量级现代化工具,界面简洁美观,支持深色/浅色主题,下载即用。4.QuickRedis - 基于Node.js的Web应用,需先安装运行环境,适合熟悉技术的用户。

懿轩的技术小窝 1600

Python 爬虫教程:财经新闻实时抓取(最新资讯 + 关键词提取)

在当今信息爆炸的时代,财经新闻的实时获取对于投资者、研究人员以及普通大众来说都具有重要的价值。通过 Python 爬虫技术,我们可以高效地抓取财经新闻,并提取其中的关键信息,以便更好地进行数据分析和决策支持。本文将详细介绍如何使用 Python 编写一个财经新闻实时抓取系统,并结合关键词提取技术,帮助读者快速掌握 Python 爬虫的核心技能。

yansideyucsdn的博客 1049

Jedis 操作 Redis 数据结构全攻略

Jedis 操作 Redis 数据结构全攻略一 . 认识 RESP二 . 前置操作2.1 创建项目2.2 关于开放 Redis 端口的问题2.2.1 端口转发?2.2.2 端口配置2.3 连接到 Redis 服务器三 . 通用命令3.1 set 和 get3.2 exists 和 del3.3 keys3.4 expire、ttl、type三 . string 相关命令3.1 mset / mget3.2 getrange / setrange3.3 append3.4 incr / decr3.5 mse

m0_53117341的博客 1216

Modbus RTU 详解 + FreeMODBUS移植(附项目源码)

本文全面解析Modbus RTU通信协议,详细介绍其报文格式、功能码定义及典型应用场景,并手把手指导如何将FreeMODBUS协议栈移植到嵌入式平台。内容涵盖从底层硬件驱动配置、协议栈移植到主机/从机通信测试的全流程,重点讲解移植过程中的常见问题及解决方案。文章最后提供经过实测的完整项目源码,帮助开发者快速实现稳定的Modbus RTU通信功能。

Bit_Dong的博客 2926

微信小程序 - 实现嵌套H5页面唤起微信支付的实现方案+完整流程源码,微信小程序webview(H5页面)调用微信小程序支付,嵌套h5页面怎么实现小程序支付(Vue2/3移动端H5网页、公众号网页等)

h5嵌入微信小程序微信支付,H5网页嵌入到微信小程序内如何支付,微信小程序webview组件交互,内联h5页面并网页实现微信支付,微信H5页面实现微信小程序支付,微信小程序嵌套webview实现小程序微信支付,小程序中内嵌H5网页支付怎么办,用网页的支付还是小程序的支付?支付没反应,支付报错怎么办,微信小程序内嵌h5,h5调用小程序支付功能解决方案,H5网页cors跨域,真机测试无法唤起支付,无法唤起支付,uniapp微信小程序,h5小程序调用微信支付,微信小程序内嵌H5页面,如何实现微信支付功能,微信小程

🏆 前端领域优质创作者 1万+

Redis 键值对操作全攻略

Hello , 大家好 , 这个专栏给大家带来的是 Redis 系列!本篇文章给大家带来的是 Redis 一些最基础的命令 , 那这些命令并没有涉及到 Redis 核心数据结构 , 只是简单的操作键值对 , 难度相对更简单一些 .本专栏旨在为初学者提供一个全面的 Redis 学习路径,从基础概念到实际应用,帮助读者快速掌握 Redis 的使用和管理技巧。

m0_53117341的博客 1903

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Redis 键(Key)全攻略

Redis键(Key)是数据存储的基石,本文全面介绍了Redis键的核心知识:键的命名规范应采用"模块:对象:ID:字段"结构,长度控制在100字节内;常用操作包括EXISTS、DEL、EXPIRE等命令;键过期机制采用惰性+定期删除策略;遍历键时应使用SCAN替代阻塞式的KEYS命令。文章还提供了键设计原则、内存分析工具、生命周期管理以及典型业务场景应用实例,并强调避免大Key、合理设置TTL等生产环境最佳实践,帮助开发者高效管理Redis数据存储。

likuoelie的博客 838

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

《在Egg.js中集成Redis:egg-redis插件全攻略》

《在Egg.js中集成Redis:egg-redis插件全攻略》 1. 项目目录结构及介绍 egg-redis是一个Egg.js框架下的Redis客户端插件,其目录结构主要包括以下关键部分: lib: 包含核心功能实现的JavaScript代码。 test: 单元测试相关的文件,用于验证插件的功能是否正常工作。 docs: 文档说明,提供了配置和使用指南。 config: 示例配置文件,展示如何...

gitblog_00572的博客 674

Redis配置优化全攻略

命令动态调整部分参数。Redis 的配置文件通常位于。根据数据可靠性需求选择。

quxing10086的博客 886

HoRain云--Redis超时排查全攻略

摘要:本文针对SpringDataRedis常见的"Readtimedout"错误提供了系统排查方案。通过流程图指导从基础环境检查、客户端配置验证到服务器性能分析的分步排查,重点解决网络延迟、连接池配置不当、大Key阻塞等问题。文章包含优化配置示例,推荐使用SCAN替代KEYS命令、设置随机过期时间等技巧,并建议通过RedisInsight监控工具和压力测试进行深度排查。最终提供完整的高并发场景配置模板,帮助开发者有效解决Redis超时问题。

sinat_57153473的博客 1061
上一篇: Linux/Unix下pid文件作用浅析
下一篇: redis主从的配置和使用
github_17527205
博客等级 码龄12年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值