Redis简介

  1. Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。
  2. 它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。
  3. 内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

Redis的特点

  1. Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  2. Redis不仅仅支持简单的k-v类型的数据,同时还提供listsetzsethash等数据结构的存储。
  3. Redis支持数据的备份,即master-slave主从模式的数据备份。

Redis的优势

  1. 性能极高——Redis读的速度为11w/s,写的速度为8.1w/s
  2. 丰富的数据类型——Redis支持二进制案例的Strings,Lists,Hashes,SetsOrdered Sets数据类型操作。
  3. 原子性——Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
  4. 丰富的特性——Redis还支持public/subscribe,通知,key过期等特性。

Redis应用

  1. 应用在高并发和实时请求的场景,eg新浪微博
  2. hash:关注列表,粉丝列表
  3. string:微博数,粉丝数
  4. (避免使用select count(*) from...)
  5. sorted set
  6. TopN,热门微博,还有githubstackoverflow

部署

  1. mkdir -p /application/tools
  2. cd /application/tools
  3. wget -q http://download.redis.io/releases/redis-5.0.7.tar.gz
  4. tar xf redis-5.0.7.tar.gz -C /application/
  5. make /application/redis-5.0.7 && make install 

复制新文件实例

  1. mkdir -p /application/redis6380
  2. cp /application/redis-5.0.7/redis.conf /application/redis6380/
  3. cp /application/redis-5.0.7/src/redis-server /application/redis6380/

创建实例日志存放路径以启动名称到环境启动加载位置并授权

  1. mkdir -p /application/redis6380/logs/
  2. cp /application/redis-5.0.7/src/redis-cli /usr/bin/
  3. cp /application/redis-5.0.7/src/redis-server /usr/bin/
  4. chmod +x /usr/bin/redis-server
  5. chmod +x /usr/bin/redis-cli

修改配置文件

egrep -v "^#|^$" /application/redis6380/redis.conf

  1. bind 127.0.0.1
  2. protected-mode yes
  3. requirepass root
  4. port 6380
  5. tcp-backlog 511
  6. timeout 0
  7. tcp-keepalive 300
  8. daemonize yes
  9. supervised no
  10. pidfile /application/redis6380/redis-6380.pid
  11. loglevel notice
  12. logfile "/application/redis6380/logs/redis.log"
  13. databases 16
  14. always-show-logo yes
  15. save 900 1
  16. save 300 10
  17. save 60 10000
  18. stop-writes-on-bgsave-error yes
  19. rdbcompression yes
  20. rdbchecksum yes
  21. dbfilename dump.rdb
  22. dir ./
  23. replica-serve-stale-data yes
  24. replica-read-only yes
  25. repl-diskless-sync no
  26. repl-diskless-sync-delay 5
  27. repl-disable-tcp-nodelay no
  28. replica-priority 100
  29. lazyfree-lazy-eviction no
  30. lazyfree-lazy-expire no
  31. lazyfree-lazy-server-del no
  32. replica-lazy-flush no
  33. appendonly no
  34. appendfilename "appendonly.aof"
  35. appendfsync everysec
  36. no-appendfsync-on-rewrite no
  37. auto-aof-rewrite-percentage 100
  38. auto-aof-rewrite-min-size 64mb
  39. aof-load-truncated yes
  40. aof-use-rdb-preamble yes
  41. lua-time-limit 5000
  42. slowlog-log-slower-than 10000
  43. slowlog-max-len 128
  44. latency-monitor-threshold 0
  45. notify-keyspace-events ""
  46. hash-max-ziplist-entries 512
  47. hash-max-ziplist-value 64
  48. list-max-ziplist-size -2
  49. list-compress-depth 0
  50. set-max-intset-entries 512
  51. zset-max-ziplist-entries 128
  52. zset-max-ziplist-value 64
  53. hll-sparse-max-bytes 3000
  54. stream-node-max-bytes 4096
  55. stream-node-max-entries 100
  56. activerehashing yes
  57. client-output-buffer-limit normal 0 0 0
  58. client-output-buffer-limit replica 256mb 64mb 60
  59. client-output-buffer-limit pubsub 32mb 8mb 60
  60. hz 10
  61. dynamic-hz yes
  62. aof-rewrite-incremental-fsync yes
  63. rdb-save-incremental-fsync yes

启动脚本

cat /etc/init.d/redis

  1. #!/bin/bash
  2. # chkconfig: 2345 80 90
  3. # description: Start and Stop redis
  4. REDISPORT=6380
  5. EXEC=/application/redis6380/redis-server
  6. REDIS_CLI=/usr/bin/redis-cli
  7. PIDFILE=/application/redis6380/redis-6380.pid
  8. CONF="/application/redis6380/redis.conf"
  9. AUTH="root" #如果启用了密码,此处需要添加该项
  10. case "$1" in
  11. start)
  12. if [ -f $PIDFILE ]
  13. then
  14. echo "$PIDFILE exists, process is already running or crashed"
  15. else
  16. echo "Starting Redis server..."
  17. $EXEC $CONF
  18. fi
  19. if [ "$?"="0" ]
  20. then
  21. echo "Redis is running..."
  22. fi
  23. ;;
  24. stop)
  25. if [ ! -f $PIDFILE ]
  26. then
  27. echo "$PIDFILE does not exist, process is not running"
  28. else
  29. PID=$(cat $PIDFILE)
  30. echo "Stopping ..."
  31. $REDIS_CLI -p $REDISPORT SHUTDOWN
  32. while [ -x ${PIDFILE} ]
  33. do
  34. echo "Waiting for Redis to shutdown ..."
  35. sleep 1
  36. done
  37. echo "Redis stopped"
  38. fi
  39. ;;
  40. restart|force-reload)
  41. ${0} stop
  42. ${0} start
  43. ;;
  44. *)
  45. echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
  46. exit 1
  47. esac

chmod +x /etc/init.d/redis

chkconfig --add redis

service redis satrt

配置成systemctl启动方式

vim /usr/lib/systemd/system/redis.service

  1. [Unit]
  2. Description=Redis persistent key-value database
  3. After=network.target
  4. After=network-online.target
  5. Wants=network-online.target
  6.  
  7. [Service]
  8. ExecStart=/data/redis6380/redis-server /data/redis6380/redis.conf --supervised systemd
  9. ExecStop=/usr/libexec/redis-shutdown
  10. Type=notify
  11. User=redis
  12. Group=redis
  13. RuntimeDirectory=redis
  14. RuntimeDirectoryMode=0755
  15.  
  16. [Install]
  17. WantedBy=multi-user.target

提示:如果多个实例可以复制出多个文件,然后改配置路径,复制出来的文件名不能一样,可以以端口号来命名

  1. systemctl daemon-reload
  2. systemctl enable redis.service
  3. systemctl start redis.service

二进制部署Redis-5.07的更多相关文章

  1. suse 12 二进制部署 Kubernetets 1.19.7 - 第07章 - 部署kube-controller-manager组件

    文章目录 1.7.部署kube-controller-manager 1.7.0.创建kube-controller-manager请求证书 1.7.1.生成kube-controller-manag ...

  2. 二进制部署K8S-2集群部署

    二进制部署K8S-2集群部署 感谢老男孩教育王导的公开视频,文档整理自https://www.yuque.com/duduniao/k8s. 因为在后期运行容器需要有大量的物理硬件资源使用的环境是用的 ...

  3. K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群

    0x00 概述 本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansi ...

  4. Docker Compose 部署 Redis 及原理讲解 | 懒人屋

    原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解  4.4k  字    16  分钟    2019-10-1 ...

  5. 【原】二进制部署 k8s 1.18.3

    二进制部署 k8s 1.18.3 1.相关前置信息 1.1 版本信息 kube_version: v1.18.3 etcd_version: v3.4.9 flannel: v0.12.0 cored ...

  6. 5.基于二进制部署kubernetes(k8s)集群

    1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...

  7. suse 12 二进制部署 Kubernetets 1.19.7 - 第13章 - 部署metrics-server插件

    文章目录 1.13.0.创建metrics-server证书和私钥 1.13.1.生成metrics-server证书和私钥 1.13.2.开启kube-apiserver聚合配置 1.13.3.分发 ...

  8. suse 12 二进制部署 Kubernetets 1.19.7 - 番外篇 - 增加node节点

    文章目录 0.前景提要 1.准备node节点环境 1.0.修改配置脚本参数 1.1.配置免密 1.2.添加hosts解析 1.3.修改主机名 1.4.更新PATH变量 1.5.安装依赖包 1.6.关闭 ...

  9. suse 12 二进制部署 Kubernetets 1.19.7 - 第01章 - 创建CA证书和kubectl集群管理命令

    文章目录 1.kubernetes集群部署 1.0.创建CA证书和秘钥 1.0.0.安装cfssl工具 1.0.1.创建根证书 1.0.2.创建证书签名请求文件 1.0.3.生成CA证书和秘钥 1.0 ...

  10. suse 12 二进制部署 Kubernetets 1.19.7 - 第02章 - 部署etcd集群

    文章目录 1.2.部署etcd集群 1.2.0.下载etcd二进制文件 1.2.1.创建etcd证书和私钥 1.2.2.生成etcd证书和私钥 1.2.3.配置etcd为systemctl管理 1.2 ...

随机推荐

  1. D - 英文题 (多组背包)

    The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a gian ...

  2. 深入理解 IoC、DI

    本文转载自博客:https://www.cnblogs.com/xinhuaxuan/p/6132372.html 1.控制反转:谁控制谁?控制什么?为何叫反转(对应于正向)?哪些方面反转了?为何需要 ...

  3. 为ASP_NET应用程序启用SQL缓存

    步骤一: sql数据库必须开启ServiceBroker服务,首先检测是否已经启用ServiceBroker,检测方法: SELECT DATABASEPROPERTYEX('dbName','IsB ...

  4. Win10安装Tensorflow-gpu遇到Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问

    最近因为上课需要安装Anaconda和Tensorflow,安装Anaconda后再使用 Tensorflow官网提供的pip安装Tensorflow-GPU方法会出现如下错误: 解决方法:在安装命令 ...

  5. [LeetCode]1071. 字符串的最大公因子(gcd)

    题目 对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 "T 能除尽 S". 返回最长字符串 X,要求满足 X 能除尽 ...

  6. 使用Java Stream,提取集合中的某一列/按条件过滤集合/求和/最大值/最小值/平均值

    不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常: java.lang.NullPointerException java.ut ...

  7. Python爬虫实战练习:爬取美团旅游景点评论数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 今年的国庆节还有半个月就要来了,相信很多的小伙伴还是非常期待这个小长假的.国庆节是一年中的小 ...

  8. pxe+kickstart无人值守批量安装linux

    一.原理和概念: 1.PXE:         PXE 并不是一种安装方式,而是一种引导的方式.进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 ...

  9. netty字节分包

    高并发压测时,发现来自网关的消息出现粘包现象:分包就是势在必行的 前置和处理平台(暂时)使用netty通话,由于都是服务器平台使用DelimiterBasedFrameDecoder来解决分包 和网关 ...

  10. 7.kafka HA