安装及配置

redis

官网地址:https://redis.io/ Redis和Memcached是非关系型数据库也称为NoSQL数据库,MySQL、Mariadb、SQL Server、PostgreSQL、Oracle 数据库属于关系型数据(RDBMS, Relational Database Management System)
Redis(Remote Dictionary Server)在 2009 年发布,开发者 Salvatore Sanfilippo 是意大利开发者,他本想为自己的公司开发一个用于替换 MySQL 的产品 Redis,但是没有想到他把 Redis 开源后大受欢迎,短短几年,Redis 就有了很大的用户群体,目前国内外使用的公司有知乎网、新浪微博、GitHub 等redis是一个开源的、遵循BSD协议的、基于内存的而且目前比较流行的键值数据库(key-value database),是一个非关系型数据库,redis 提供将内存通过网络远程共享的一种服务,提供类似功能的还有memcache,但相比 memcache,redis 还提供了易扩展、高性能、具备数据持久性等功能
Redis 在高并发、低延迟环境要求比较高的环境使用量非常广泛,目前 redis 在 DB-Engine 月排行榜https://db-engines.com/en/ranking 中一直比较靠前,而且一直是键值型存储类的首位
redis 对比 memcached 支持数据的持久化:可以将内存中的数据保持在磁盘中,重启 redis 服务或者服务器之后可以从备份文件中恢复数据到内存继续使用。 支持更多的数据类型:支持 string(字符串)、hash(哈希数据)、list(列表)、set(集合)、zet(有序集合) 支持数据的备份:可以实现类似于数据的 master-slave 模式的数据备份,另外也支持使用快照+AOF支持更大的 value 数据:memcache 单个 key value 最大只支持 1MB,而 redis 最大支持 512MB Redis 是单线程,而 memcache 是多线程,所以单机情况下没有 memcache 并发高,但 redis 支持分布式集群以实现更高的并发,单 Redis 实例可以实现数万并发 支持集群横向扩展:基于 redis cluster 的横向扩展,可以实现分布式集群,大幅提升性能和数据安全性 都是基于 C 语言开发
redis 典型应用场景 Session 共享:常见于 web 集群中的 Tomcat 或者 PHP 中多 web 服务器 session 共享 消息队列:ELK 的日志缓存、部分业务的订阅发布系统 计数器:访问排行榜、商品浏览数等和次数相关的数值统计场景 缓存:数据查询、电商网站商品信息、新闻内容 微博/微信社交场合:共同好友、点赞评论等

部署与使用

yum 安装 redis 基于epel源,yum安装版本较低
编译安装

解决当前的警告提示

The backlog argument defines the maximum length to which the queue of pending connectionsfor sockfd may grow. If a connection request arrives when the queue is full, the client may receive an errorwith an indication of ECONNREFUSED or, if the underlying protocol supports retransmission, the request maybe ignored so that a later reattempt at connection succeeds backlog 参数控制的是三次握手的时候 server 端收到 client ack 确认号之后的队列值net.core.somaxconn = 512 redis配置文件默认是511,设置的值比511大即可
WARNING overcommit\_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit\_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit\_memory=1’ for this to take effect. 0、表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1、表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2、表示内核允许分配超过所有物理内存和交换空间总和的内存vm.overcommit_memory = 1
transparent hugepage 开启大页内存动态分配,需要关闭让 redis 负责内存管理echo never > /sys/kernel/mm/transparent_hugepage/enabledhttps://blog.csdn.net/lixora/article/details/42025349
文件打开限制 可以看redis日志,使用ulimit -a查看
redis服务启动脚本

windows安装redis

https://github.com/MicrosoftArchive/redis/releases 启动 redis-server.exe redis.windows.conf

客户端连接

python连接方法

redis 主配置文件

小结

reids数据默认是16个,从0开始0-15,数据最大512MB
stop-writes-on-bgsave-error no 建议开启 repl-timeout 60 #复制链接超时时间,需要大于 repl-ping-slave-period,否则会经常报超时 repl-disable-tcp-nodelay no socket不建议使用会增加额外的带宽 maxclients 10000 #最大连接客户端 maxmemory 默认单位是字节,一定要设置 appendfsync everysec 写入磁盘方式fsync一次写入,还是定时写入,合理设置,会增加磁盘IO aof-use-rdb-preamble yes 持久化 根据情况选择RDB和AOF模式 redis 4.0以上版本支持混合 slowlog-log-slower-than 10000 #以微秒为单位的慢日志记录,为负数会禁用慢日志,为 0 会记录每个命令操作,一般会禁用 cluster-migration-barrier 1 #一个主节点拥有的至少正常工作的从节点,即如果主节点的 slave 节点故障后会将多余的从节点分配到当前主节点成为其新的从节点。 requirepass 123456 设置redis登录密码

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...