redis单节点集群

一、概念

  redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。

二、redis的应用场景有哪些
  1、会话缓存(最常用)
  2、消息队列,比如支付
  3、活动排行榜或计数
  4、发布、订阅消息(消息通知)
  5、商品列表、评论列表等

1.redis安装:
  # wget http://download.redis.io/releases/redis-4.0.6.tar.gz
  # yum install gcc  
  # make MALLOC=libc
  # cd src && make install
  # ./redis-server

2.修改配置文件:vim ../redis.conf
          daemonize yes         #以后台进程方式启动
          #bind 127.0.0.1        #允许本地连接
          requirepass redhat     #设置连接密码

3.后台启动:./redis-server /root/redis-4.0.6/redis.conf

4.登录:redis-cli -h 127.0.0.1 -p 6379
   认证:auth redhat

5.redis数据类型:
字符串(string):set bp 123 #设置字符串类型bp 值为122
  get bp               #获取bp的值
  type bp              #获取bp的类型
  append bp linux          #向bp插入字符linux
  strlen bp               #获取字符串长度
  del bp              #删除键值
  mset 键1 值1 键2 值2 ...      #设置多个键值
  mget 键1 键2 键3 ....         #获取多个键值

散列(hash):hset ID(散列名) name(键) passwd(值) #设置散列名ID存放的值对
  hget ID name        #获取散列名ID的name对应的值
  hgetall ID          #获取散列ID的全部值
  hmset age name linux kali contos debian 30      #一次性设置散列age的值
  hdel ood name        #删除某个散列的值
  hexists age kali        #判断某个散列的值是否存在,0不存在

列表(list):lpush test 1   #列表名为test,从左边加入1,编号为最后一位数
  rpush test -1      #列表名为test,从右边加入-1,编号为0
  llen test        #列表长度
  lpop test        #左边出去一个数
  rpop test        #右边出去一个数
  lrange test 2 3        #列表下标从0开始计算,显示第三个数和第四个数
  lrem test 1 3        #左数删除1个3
  lindex test 2       #获取2的下标
  ltrim test 0 2        #test取截取(删除)出来的下标0到2对应的值

集合(set):sadd linux a b c d e a b #增加linux集合,集合内容为a b c d e ,不能出现相同数据
  srem linux d e        #删除linux集合中的d e元素
  smembers linux        #查看linux的元素
  sismember linux d      #查看d是否是集合linux的元素,否
  sdiff linux centos      #两个集合取差集,(顺序不同,结果不同)
  sinter linux centos      #取交集
  sunion linux centos      #取并集

有序集合(zset):zadd test1 10(值) a(键) #增加test1有序集合,分数为10 等级为a
  zrem test1 b         #移除test1的等级b的值
  zscore test1 a         #查看test1的等级a的值
  zrange test1 0 1         #查看test1第一个和第二个的值
  zrangebyscore test1 5 10  #根据分数查看对应的的等级

三、redis持久化
1.RDB持久化
  RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,将Redis内存中的数据,完整的生成一个快照,以二进制格式文件(后缀RDB)保存在硬盘当中。当需要进行恢复时,再从硬盘加载到内存中。RDB 可以最大化 Redis 的性能:父进程在保存 RDB 文件时唯一要做的就是 fork 出一个子进程,然后这个子进程就会处理接下来的所有保存工作,父进程无须执行任何磁盘 I/O 操作。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。但是一旦发生故障,可能会丢失几分钟的数据。

触发:
1.配置文件:#vim redis.conf
save 900 1 // 900内,有1条写入,则产生快照
save 300 1000 // 如果300秒内有1000次写入,则产生快照
save 60 10000 // 如果60秒内有10000次写入,则产生快照
stop-writes-on-bgsave-error yes // 后台备份进程出错时,主进程停不停止写入? 主进程不停止 容易造成数据不一致
rdbcompression yes // 导出的rdb文件是否压缩,如果rdb的大小很大的话建议这么做
Rdbchecksum yes // 导入rbd恢复时数据时,要不要检验rdb的完整性 验证版本是不是一致
dbfilename dump.rdb //导出来的rdb文件名
dir ./ //rdb的放置路径
2.手动:save(同步)
bgsave(异步)

2.AOF持久化
  AOF 文件有序地保存了对数据库执行的所有写入操作, 这些写入操作以 Redis 协议的格式保存, 因此 AOF 文件的内容非常容易被人读懂,AOF 文件是一个只进行追加操作的日志文件

触发:#vim redis.conf
appendonly no // 是否打开aof日志功能,aof跟rdb都打开的情况下
appendfsync always // 每1个命令,都立即同步到aof.安全,速度慢
appendfsync everysec // 折衷方案,每秒写1次
appendfsync no // 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快,

no-appendfsync-on-rewrite yes: // 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 //aof文件大小比起上次重写时的大小,增长率100%时,重写缺点刚开始的时候重复重写多次
auto-aof-rewrite-min-size 64mb //aof文件,至少超过64M时,重写

3.测试使用 redis-benchmark -n 10000 ::表示 执行请求10000次

四,单节点集群
1.创建集群目录:# mkdir /usr/local/redis-cluster

        # wget http://download.redis.io/releases/redis-3.0.6.tar.gz
2.解压6次到该目录:# tar zxvf redis-3.0.6.tar.gz -C /usr/local/redis-cluster
3.编译安装:# make MALLOC=libc

# cd src && make install

4.修改绑定IP:# sed -i ‘s/bind 127.0.0.1/bind 192.168.11.199/g‘ redis.conf

5.修改端口号7001-7006:# sed -i ‘s/port 6379/port 7001/g‘ redis-1/redis.conf

6.开启后台启动模式:# sed -i ‘s/daemonize no/daemonize yes/g‘ redis.conf

7.复制redis配置文件重命名为redis-2...6.conf,修改端口号7002-7006

8..安装ruby环境:# yum -y install ruby

        # yum -y install rubygems

9.安装执行ruby脚本redis-trib.rb执行所依赖的gem包:# wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
                        # gem install -l ./redis-3.2.1.gem

10.编写脚本启动所有实例

#!/bin/bash
set -e
redis1=/usr/local/redis-cluster/redis-4.0.6/redis-1.conf
redis2=/usr/local/redis-cluster/redis-4.0.6/redis-2.conf
redis3=/usr/local/redis-cluster/redis-4.0.6/redis-3.conf
redis4=/usr/local/redis-cluster/redis-4.0.6/redis-4.conf
redis5=/usr/local/redis-cluster/redis-4.0.6/redis-5.conf
redis6=/usr/local/redis-cluster/redis-4.0.6/redis-6.conf

echo "start redis-1..."
{
/usr/local/bin/redis-server $redis1 >/dev/null 2>&1
} || {
echo "start error"
exit 1
}

echo "start redis-2..."
{
/usr/local/bin/redis-server $redis2 >/dev/null 2>&1
} || {
echo "start error"
exit 1
}

echo "start redis-3..."
{
/usr/local/bin/redis-server $redis3 >/dev/null 2>&1
} || {
echo "start error"
exit 1
}

echo "start redis-4..."
{
/usr/local/bin/redis-server $redis4 >/dev/null 2>&1
} || {
echo "start error"
exit 1
}

echo "start redis-5..."
{
/usr/local/bin/redis-server $redis5 >/dev/null 2>&1
} || {
echo "start error"
exit 1
}

echo "start redis-6..."
{
/usr/local/bin/redis-server $redis6 >/dev/null 2>&1
} || {
echo "start error"
exit 1
}

10.启动

 

11.复制集群脚本命令

  # cp src/redis-trib.rb .

12.开启每个配置文件的集群功能

  # sed -i ‘s/# cluster-enabled yes/cluster-enabled yes/g‘ redis-2.conf

13.创建集群

  # cd src

  # ./redis-trib.rb create --replicas 1 192.168.11.199:7001 192.168.11.199:7002 192.168.11.199:7003 192.168.11.199:7004 192.168.11.199:7005 192.168.11.199:7006

14.连接集群,自动切换集群节点

# redis-cli -h 192.168.11.199 -p 7001 -c

15.检查集群状态

  # ./redis-trib.rb check 192.168.11.199:7001

原文地址:https://www.cnblogs.com/jay-fred/p/9958283.html

时间: 2024-10-29 08:53:26

redis单节点集群的相关文章

kubeadm搭建kubernetes(v1.13.1)单节点集群

kubeadm是Kubernetes官方提供的用于快速部署Kubernetes集群的工具,本篇文章使用kubeadm搭建一个单master节点的k8s集群. 节点部署信息 节点主机名 节点IP 节点角色 操作系统 k8s-master 10.10.55.113 master centos7.6 k8s-node1 10.10.55.114 node centos7.6 节点说明 master:控制节点.kube-apiserver负责API服务,kube-controller-manager负责

Hadoop学习笔记(二)设置单节点集群

本文描述如何设置一个单一节点的 Hadoop 安装,以便您可以快速执行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 参考官方文档:Hadoop MapReduce Next Generation - Setting up a Single Node Cluster. Hadoop版本:Apache Hadoop 2.5.1 系统版本:CentOS 6.5,内核(uname -r):2.6.32-431.el6.x86_64 系统必备组件 支

Hadoop学习笔记(两)设置单节点集群

本文描写叙述怎样设置一个单一节点的 Hadoop 安装.以便您能够高速运行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 參考官方文档:Hadoop MapReduce Next Generation - Setting up a Single Node Cluster. Hadoop版本号:Apache Hadoop 2.5.1 系统版本号:CentOS 6.5.内核(uname -r):2.6.32-431.el6.x86_64 系统必备

Cassandra配置多节点集群

上一篇文章 Cassandra入门指南中,我们已经配置好了一个单节点集群,接下来,我们要往这个集群中多加几个节点,看看多个节点是如何同时工作的. Cassandra节点之间交换信息是通过一种叫做Gossip(暂时不知道该翻译为哪个专有名词合适,暂且意会吧)的机制.但是要想让一个消息传递到一个新加入的节点,至少还需要知道另外一个节点,这个节点叫做种子(Seed).通常我们会选择一小部分相对稳定的节点作为种子节点,但这并不是硬性规定.务必要确保每个种子节点至少能感知另外一个种子节点.记住,这样做的目

ELK开发部署(1):安装Elasticsearch组建单服务器多节点集群

ELK简介 最近有个需求搭建一套日志系统用于集成几个业务系统的日志提供快速的检索功能,目前是用Log4net存数据库+Error级别发邮件方式,也算简单暴力好用,但历史日志的模糊查询确实很慢,所以使用ELK是比较理想的解决方案.三年前写过两篇文章log4net.NoSql +ElasticSearch 实现日志记录和log4net.redis+logstash+kibana+elasticsearch+redis 实现日志系统,感觉有点凌乱,这次借着项目需要重新整理一下.参考ELK不权威指南可以

ELK日志框架(1):安装Elasticsearch组建单服务器多节点集群

原文:ELK日志框架(1):安装Elasticsearch组建单服务器多节点集群 ELK简介 最近有个需求搭建一套日志系统用于集成几个业务系统的日志提供快速的检索功能,目前是用Log4net存数据库+Error级别发邮件方式,也算简单暴力好用,但历史日志的模糊查询确实很慢,所以使用ELK是比较理想的解决方案.三年前写过两篇文章log4net.NoSql +ElasticSearch 实现日志记录和log4net.redis+logstash+kibana+elasticsearch+redis

Kubernetes群集之:二进制部署单etcd,多节点集群

Kubernetes集群部署 1.官方提供的三种部署方式2.Kubernetes平台环境规划3.自签SSL证书4.Etcd数据库群集部署 5.Node安装Docker6.Flannel容器集群网络部署7.部署Master组件8.部署Node组件9.部署一个测试示例10.部署Web UI(Dashboard)11.部署集群内部DNS解析服务(CoreDNS) 官方提供的三种部署方式: minikube: Minikube是一个工具,可以在本地快速运行单点的Kubernetes,仅用于尝试Kuber

Hyperledger Fabric 1.0 从零开始(六)——创建Fabric多节点集群

4:创建Fabric多节点集群 4.1.配置说明 首先可以根据官方Fabric自带的e2e_cli列子中的集群方案来生成我们自己的集群,与案例不同的是我们需要把容器都分配到不同的服务器上,彼此之间通过网络来进行通信,网络构建完成后则进行相关的channel和chaincode操作. 笔者目前申请了五台服务器,所有的服务器均是按照上述e2e_cli环境构建与测试步骤配置.计划其中四台服务器运行peer节点,另外一台服务器运行orderer节点,为其它四个节点提供order服务. 虚拟机具体参数如下

HADOOP之3节点集群

1.apache提供的hadoop-2.4.1的安装包是在32位操作系统编译的,因为hadoop一些C++的本地库,所以如果在64位的操作上安装hadoop-2.4.1就需要重新在64操作系统上重新编译 2.本次搭建使用了2.7.1,hadoop2.7.1是稳定版. 3.节点包括了namenode的高可用,jobtracker的高可用,zookeeper高可用集群(后期更新) 架构图: 主机信息 IP 主机名 MASTER 168.1.114 Mycat SLAVE 168.1.107 Hapr