部署介绍基本概念扩展

Redis5.0.8安装部署

数据库教程 2021-09-08 11:50:11 29

导读

1.Redis介绍Nosql基本概念为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。NoSql,叫非关系型数据库,它的全名Notonlysql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。Nosql分类键值(Key-Value)存储数据库相……

1.Redis 介绍

Nosql 基本概念

为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。

NoSql,叫非关系型数据库,它的全名Not only sql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。

Nosql 分类
  • 键值(Key-Value)存储数据库 相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB 典型应用: 内容缓存,主要用于处理大量数据的高访问负载。 数据模型: 一系列键值对 优势: 快速查询 劣势: 存储的数据缺少结构化

  • 列存储数据库 相关产品:Cassandra, HBase, Riak 典型应用:分布式的文件系统 数据模型:以列簇式存储,将同一列数据存在一起 优势:查找速度快,可扩展性强,更容易进行分布式扩展 劣势:功能相对局限

  • 文档型数据库 相关产品:CouchDB、MongoDB 典型应用:Web应用(与Key-Value类似,Value是结构化的) 数据模型: 一系列键值对 优势:数据结构要求不严格 劣势: 查询性能不高,而且缺乏统一的查询语法

  • 图形(Graph)数据库 相关数据库:Neo4J、InfoGrid、Infinite Graph 典型应用:社交网络 数据模型:图结构 优势:利用图结构相关算法。 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

Redis 基本概念

Redis是使用C语言开发的一个高性能键值数据库。Redis可以通过一些键值类型来存储数据。 键值类型: String字符类型 map散列类型 list列表类型 set集合类型 sortedset有序集合类型

发展历史

2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人 Salvatore Sanfilippo便 对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。 不过Salvatore Sanfilippo并不满足只将Redis用于LLOOGG这一款产品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo将Redis开源发布,并开始和Redis的另一名主要的代码贡献者Pieter Noordhuis一起继续着Redis的开发,直到今天。

Salvatore Sanfilippo自己也没有想到,短短的几年时间,Redis就拥有了庞大的用户群体。Hacker News在2012年发布了一份数据库的使用情况调查,结果显示有近12%的公司在使用Redis。国内如新浪微博、街旁网、知乎网,国外如GitHub、Stack Overflow、Flickr等都是Redis的用户。

VMware公司从2010年开始赞助Redis的开发, Salvatore Sanfilippo和Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis。

应用场景

缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用) 分布式集群架构中的session分离。 聊天室的在线好友列表。 任务队列。(秒杀、抢购、12306等等) 应用排行榜。 网站访问统计。 数据过期处理(可以精确到毫秒)

2.Redis部署

环境IP:192.168.230.202 安装路径:/usr/local/redis 日志路径:/usr/local/redis/logs pid及log文件均在/usr/local/redis/logs
安装

下载redis5.0.8安装包并解压到指定路径

wget http://download.redis.io/releases/redis-5.0.8.tar.gz tar xf redis-5.0.8.tar.gz -C /usr/src/ cd /usr/src/redis-5.0.8/

由于已经有Makefile文件直接make编译即可,PREFIX指定编译路径

make &&make install PREFIX=/usr/local/redis

拷贝配置文件

cp redis.conf /usr/local/redis/ cd /usr/local/redis/ mkdir logs

修改redis配置文件

[root@master-all redis]# vim redis.conf  # 监听地址  bind 127.0.0.1  # 是否开启保护模式  protected-mode yes  # 监听端口  port 6379  # 此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。在/etc/sysctl.conf中添加:net.core.somaxconn = 2048,然后在终端中执行sysctl -p。  tcp-backlog 1024  # timeout 在客户端空闲N秒后关闭连接,如果为0,表示禁用  timeout 0  # 如果值非0,单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,默认300秒  tcp-keepalive 300  # 是否后端运行  daemonize yes  supervised no  # 设置运行pid文件路径  pidfile /usr/local/redis/logs/redis.pid  # 日志级别  loglevel notice  # 日志文件路径  logfile "/usr/local/redis/logs/redis.log"  # 设置数据库数量  databases 1  # 是否总是显示logo  always-show-logo no  save 900 1  save 300 10  save 60 10000  # 持久化出现错误后是否依然继续进行工作  stop-writes-on-bgsave-error yes  # 是否启用压缩,但是会损耗一些cpu性能  rdbcompression yes  # 是否校验rdb文件,更有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗,所以如果你追求高性能,可以关闭该配置。  rdbchecksum yes  # 数据存放名称  dbfilename cache_data.rdb  # 数据存放目录  dir /usr/local/redis/  replica-serve-stale-data yes  replica-read-only yes  repl-diskless-sync no  repl-diskless-sync-delay 5  repl-disable-tcp-nodelay no  replica-priority 100  # 设置连接密码  requirepass U1adasd%  lazyfree-lazy-eviction no  lazyfree-lazy-expire no  lazyfree-lazy-server-del no  replica-lazy-flush no  appendonly no  appendfilename "appendonly.aof"  appendfsync everysec  no-appendfsync-on-rewrite no  auto-aof-rewrite-percentage 100  auto-aof-rewrite-min-size 64mb  aof-load-truncated yes  aof-use-rdb-preamble yes  lua-time-limit 5000  slowlog-log-slower-than 10000  slowlog-max-len 128  latency-monitor-threshold 0  notify-keyspace-events ""  hash-max-ziplist-entries 512  hash-max-ziplist-value 64  list-max-ziplist-size -2  list-compress-depth 0  set-max-intset-entries 512  zset-max-ziplist-entries 128  zset-max-ziplist-value 64  hll-sparse-max-bytes 3000  stream-node-max-bytes 4096  stream-node-max-entries 100     activerehashing yes  client-output-buffer-limit normal 0 0 0  client-output-buffer-limit replica 256mb 64mb 60  client-output-buffer-limit pubsub 32mb 8mb 60  # 默认情况下,hz设置为10.提高值时,在Redis处于空闲状态下,将使用更多CPU。范围介于1到500之间,大多数用户应使用默认值10,除非仅在需要非常低延迟的环境中将此值提高到100。  hz 10  # 启用动态HZ时,实际配置的HZ将用作基线,但是一旦连接了更多客户端,将根据实际需要使用配置的HZ值的倍数。  dynamic-hz yes  # 当一个子进程重写AOF文件时,如果启用下面的选项,则文件每生成32M数据会被同步。  aof-rewrite-incremental-fsync yes  # 当redis保存RDB文件时,如果启用了以下选项,则每生成32 MB数据将对文件进行fsync。 这对于以递增方式将文件提交到磁盘并避免大延迟峰值非常有用。  rdb-save-incremental-fsync yes

放行默认tcp 6379端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --reload
使用

启动

[root@master-all redis]# ./bin/redis-server redis.conf

停止

[root@master-all redis]# ./bin/redis-cli shutdown

链接

[root@master-all redis]# ./bin/redis-cli -h 192.168.230.202 -p 6379


1253067 TFnetwork_cn