Redis开发与运维读书笔记 之一——初始Redis

作者: tcxurun 分类: 学习笔记 发布时间: 2020-03-07 11:31 ė 6 没有评论

初始Redis

Redis是一种基于键值对的NoSQL数据库,Redis中的值可以是string、hash、list、set、zset、Bitmaps、HyperLogLog、GEO等多种类型。

 

Redis的8个特特性

1、速度快

RW速度大约在10万/秒左右,数据存放内存,C语言设计,单线程架构,避免线程争用

2、基于键值对的数据结构服务器

Redis全称是REmote DIctionary Server,主要提供5种数据结构-字符串、哈希、列表、集合、有序集合,并从字符串演变出了位图和HyperLogLog的结构,同时随着LBS的发展,从3.2开始引入了GEO(地理信息定位)功能

3、丰富的功能

通过键过期功能实现缓存、通过发布订阅功能实现消息系统、支持Lua脚本创造新的Redis命令、提供简单事务功能保证事务特性、提供流水线Pipeline功能实现客户端一次传输一批命令,减少网络开销

4、简单稳定

远吗少,早期版本只有2万行,3.0版本添加了集群特性也只有5万行代码,单线程模型使得服务端处理模型变得简单,容易进行客户端开发,不需要依赖操作系统实现事务处理

5、客户端语言多

通过TCP通信协议接入各种语言的客户端

6、持久化

提供RDF和AOF两种持久化策略

7、主从复制

一主多从

8、高可用和分布式

Redis2.8提供了Sentinel高可用实现,保证Redis节点的故障发现和自动转移。3.0开始提供集群和分布式实现Redis Cluster,提供了高可用、读写和容量的扩展

 

Redis使用场景

缓存:键值过去的时间设置、最大内存的灵活设置和内存溢出后的淘汰策略

排行榜:合理使用列表和有序集合数据结构

计数器:天然支持且性能非常好

社交网络:支持赞/踩、粉丝、共同好友/喜好、推送、下拉刷新,和传统数据库相比,Redis提供的数据结构相对容易实现

消息队列:Redis提供了发布订阅功能和阻塞队列

 

Redis不适合的使用场景

不适合放冷数据

 

Redis的配置、启动、操作和关闭

Redis可执行文件说明:

redis-server:启动redis

redis-cli:redis命令行客户端

redis-benchmark:redis基准测试工具

redis-check-aof:AOF持久化文件检测和修复工具

redis-check-dump:RDB持久化文件检测和修复工具

redis-sentinel:启动Redis Sentinel

 

Redis建议使用配置文件启动,或指定端口号和配置名和值启动

redis-server /opt/redis/redis.conf

redis-server --configKey configValue1 --configKey2 configValue2 --port Port

 

Redis有60多个配置,基础配置如下:

  • port:端口
  • logfile:日志文件
  • dir:工作目录(存放持久化文件和日志文件)
  • daemonize:是否以守护进程模式启动Redis

 

redis-cli可以以两种方式连接Redis服务器:

redis-cli -h {host} -p {port},然后进行交互

redis-cli -h {host} -p {port} {command}直接交互

 

当没有-h参数,默认连接127.0.0.1,如果没有-p参数,默认连接6379端口

 

停止Redis服务

redis-cli shutdown

 

这是一种优雅的关闭方式,会断开与客户端的连接、持久化文件生成,如果使用kill -9强制杀死进程,不会持久化操作,还会造成缓冲区等资源不能优雅关闭,极端情况会造成AOF和复制丢失数据

shutdown可以输入参数,表示在关闭Redis前,是否生成持久化文件

 

Redis的版本号借鉴了Linux,版本号第二位如果是奇数,则为非稳定版本,偶数为稳定版本,生产环境应当使用偶数版本 

 

Redis重大版本

2.8

bind多地址

sentinel哨兵生产可用

添加部分主从复制功能

3.0

增加Redis的官方分布式实现:Redis Cluster

embedded编码,优化小对象内存访问,速度大幅提升

migrate连接缓存

3.2

添加GEO相关功能

新的List编码类型:quicklist

4.0

PSYNC2.0,修复之前版本主从节点切换引起全量复制问题

非阻塞del和flush命令,解决删除bigkey可能造成的Redis阻塞

提供了RDB-AOF混合持久化格式,充分利用了AOF和RDB的各自优势

提供memory命令,实现对内存更为全民的监控统计

本文出自天一直很蓝,转载时请注明出处及相应链接。

本文永久链接: http://www.tcxurun.cn/archives/544

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Ɣ回顶部