精华内容
下载资源
问答
  • Linux Redis环境搭建

    2016-05-13 13:42:43
    redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 以下是安装测试步骤: 1,redis安装(到...
    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。  
    以下是安装测试步骤:  
    1,redis安装(到这里查看<a target=_blank href="https://code.google.com/archive/p/redis/downloads">https://code.google.com/archive/p/redis/downloads</a>
    最新版):  
    [html] view plaincopy  
    [root@localhost ~]# cd /usr/local/src/    
    [root@localhost src]# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/redis/redis-2.6.14.tar.gz  --no-check-certificate  
    [root@localhost src]# tar zxf redis-2.6.14.tar.gz    
    [root@localhost src]# cd redis-2.6.14    
    [root@localhost redis-2.2.12]# make PREFIX=/usr/local/redis install    
    2,配置redis:  
    [html] view plaincopy  
    [root@localhost redis-2.2.12]# mkdir -p /usr/local/redis/etc    
    [root@localhost redis-2.2.12]# mkdir -p /usr/local/redis/var    
    [root@localhost redis-2.2.12]# cd /usr/local/redis/etc    
    [root@localhost etc]# vi redis.conf(重新建立conf文件,需要复制下面的配置)    
    [html] view plaincopy  
    daemonize yes    
    pidfile /usr/local/redis/redis.pid    
    port 6379    
    bind 127.0.0.1    
    timeout 300    
    loglevel verbose    
    logfile stdout    
    databases 16    
    save 900 1    
    save 300 10    
    save 60 10000    
    rdbcompression yes    
    dbfilename dump.rdb    
    dir /usr/local/redis/var/    
    slave-serve-stale-data yes    
    maxclients 12800    
    appendonly no    
    appendfsync everysec    
    no-appendfsync-on-rewrite no    
    slowlog-log-slower-than 10000    
    slowlog-max-len 1024    
    vm-enabled no    
    vm-swap-file /tmp/redis.swap    
    vm-max-memory 0    
    vm-page-size 32    
    vm-pages 134217728    
    vm-max-threads 4    
    hash-max-zipmap-entries 512    
    hash-max-zipmap-value 64    
    list-max-ziplist-entries 512    
    list-max-ziplist-value 64    
    set-max-intset-entries 512    
    activerehashing yes    
    3,启动关闭redis:  
    [html] view plaincopy  
    [root@localhost ~]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf    
    [root@localhost ~]# ps -ef|grep redis    
    root 3891 1 0 18:11 ?  00:00:00 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf    
    [root@localhost redis-2.2.12]# /usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown    
    如果配置使用默认的127.0.0.1和6379端口,可执行命令时可省略以上参数。  
    4,测试redis:  
    [html] view plaincopy  
    [root@localhost ~]# telnet 127.0.0.1 6379    
    Trying 127.0.0.1...    
    Connected to localhost (127.0.0.1).    
    Escape character is '^]'.    
    ^]    
    telnet> quit    
    Connection closed.    
    5,/usr/local/redis/bin目录下执行文件功能说明:  
    redis-server:Redis服务器的daemon启动程序  
    redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作  
    redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能  
    --------------------------满意的分割线-----------------------------------  
    实例:  
    1)登陆,输入数据:  
    [html] view plaincopy  
    [root@localhost ~]# /usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379    
    redis 127.0.0.1:6379> set name csdn    
    OK    
    redis 127.0.0.1:6379> get name    
    "<span style="font-family: simsun; ">csdn</span>"    
    redis 127.0.0.1:6379> quit    
    2)查看redis统计信息:  
    [html] view plaincopy  
    [root@localhost ~]# /usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 info    
    3)测试性能:  
    向redis服务器发送10个请求,每个请求附带50个并发客户端,-n 接请求数,-c 接并发数  
    [html] view plaincopy  
    [root@localhost ~]# /usr/local/redis/bin/redis-benchmark -h 127.0.0.1 -p 6379 -n 10 -c 50


    展开全文
  • linux安装redis

    2020-11-18 16:43:04
    文章目录1、说明2、安装gcc-c++3、安装redis3.1、下载redis3.2、解压3.3、编译安装3.4、执行安装命令各文件作用4、配置redis5、启动redis 1、说明 源码安装方式 redis是C语言开发,官方只提供了源码 安装需要在...

    1、说明

    • 源码安装方式
    • redis是C语言开发,官方只提供了源码
    • 安装需要在linux环境中将官网下载的redis源码进行在线编译后,再进行安装
    • 编译依赖gcc环境

    2、安装gcc-c++

    输入命令,进行在线安装

    • /usr/local目录下在这里插入图片描述
    • 输入y确认下载;输入y确认安装
      在这里插入图片描述
    • 安装 gcc 成功
      在这里插入图片描述

    3、安装redis

    3.1、下载redis

    • 切换至/usr/local目录下,用wget命令远程下载安装包

    3.2、解压

    在这里插入图片描述
    在这里插入图片描述

    3.3、编译安装

    切换至程序目录,并执行make命令编译:
    在这里插入图片描述
    在这里插入图片描述

    3.4、执行安装命令

    在这里插入图片描述

    各文件作用

    make install安装完成后,会在/usr/local/bin目录下生成下面几个可执行文件,它们的作用分别是:
    redis-benchmark:Redis性能测试工具
    redis-check-aof:数据修复工具
    redis-check-dump:检查导出工具
    redis-cli:Redis客户端操作工具。也可以用telnet根据其纯文本协议来操作,启动客户端,用于访问redis
    redis-server:Redis服务器端启动程序,启用redis服务器端
    在这里插入图片描述

    4、配置redis

    复制配置文件到/usr/local/redis/bin目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5、启动redis

    • 启动服务器端(加上redis.conf,配置文件若有修改,在服务器端启动时会生效)
      在这里插入图片描述

    • 克隆新窗口,启动客户端
      在这里插入图片描述

    • Ctrl+C,可以退出服务器端,此时在克隆窗口无法 再访问redis

    展开全文
  • Linux-Redis

    2019-05-28 23:45:43
    什么是Redis Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于...作用 1:内存存储和持久化:redis支持异步将...

    什么是Redis

    Redis:REmote DIctionary Server(远程字典服务器)

    是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库(Not Only SQL),是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器

    作用

    1:内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

    2:取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面

    3:模拟类似于HttpSession这种需要设定过期时间的功能

    4:发布、订阅消息系统

    5:定时器、计数器

    特点

    1: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用

    2: Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

    3:Redis支持数据的备份,即master-slave模式的数据备份

    安装

    1. 解压后进入源码解压后的文件目录,运行 make PREFIX=/usr/app/software/redis install 具体目录按需修改
    2. 进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下的bin文件夹中

      如:cp /usr/app/redis-3.0.0/redis.conf  /usr/app/software/redis/bin

    3. 如果没有安装gcc依赖需要先安装gcc依赖: yum -y install gcc

    登录Redis

    启动Redis命令,以redis.conf方式启动,前提是已经复制到安装目录下了,在启动前需要先编辑该配置文件, daemonize no 改为 daemonize yes 退出保存,该配置文件中还可以配置密码端口,库的数量等,redis默认有16个库,从0到15, 启动命令是:./redis-server redis.conf此命令指示启动了服务器,可以在外部用java等操作,但是客户端内不可操作, 想要在dos命令行内操作要用redis-cli指令(redis-client客户端) ,指令为: redis-cli -a -h -p(a:密码 h:IP地址 p:端口,全都可以省略,默认是配置文件中的密码为空,地址为127.0.0.1,要是想在外部访问需要改ip地址为0.0.0.0,端口默认为6379) 要想使用DOS客户端必须先开启服务端.

    Key关键字指令

    常用指令:key

    Keys *:指令   查看当前这个库中所有的key值

    exists key:  判断某个key值是否存在 0表示不存在 1表示存在

    move  key 数据库的索引下标: 将某个值移除到指定的库中

    Redis默认有16个库,我们可以通过修改redis配置文件redis.conf来改变库的数量

    Select 下标 :可以切换不同的数据库: 下标可以从0到15之中选

    expire key 秒数:设定指定的key的存活时间

    ttl  key:查看当前的key还有多少存活时间 -1 表示永不过期,-2表示已经过期

    type  key: 查看当前key的类型(key String,Object)

    String类型数据指令

    DOS客户端内操作可以用tab键补全

    Set  key  value: 设置单一键值对(key值相同会覆盖原来的值,类似于map集合),当值不存在时是新增,当值已存在时是覆盖修改

    Get  key :获取指定key的值

    Del  key:删除指定名称 key

    Append  key  新值: 在原有的值的基础上添加新的值

    Strlen  key: 获取字符串的长度

    (key值必须是数字)

    Incr(value值自动加1) : incr  key

    decr(value值自动减1) :decr key

    incrby 递增值: incrby key 每次递增数字

    decrby 递减值:decrby key  每次递减数字;

    ------------------------------------------------------------不常用

    Getrange  : GETRANGE key  start  end: 获取value值的一部分

    Setrange :SETRANGE key  起始位置  值: 从起始位置开始替换值

     

    Setex: SETEX key名字 存活时间 值: 设定一组值同时设定存活时间;

    Setnx: SETNX key名字 值: 设置永久存活的一组值。(key值冲突无法存入值--返回值为0)

     

    Mset: mset key 值 key 值....  一次设定多组值,如果key值存在也会覆盖

    Mget: mget key  key  一次获取多个key的值

    Msetnx: 一次设定多组key值,如果有key值存在无法添加完成

    List类型(添加  删除内容)

    Lpush: 向集合中添加内容  lpush 集合的名字 值 显示的顺序和添加的顺序相反。

    Rpush: 向集合中添加内容  rpush 集合的名字 值 添加顺序就是显示顺序

    Lrange  集合的名字 起始位置  结束位置(-1代表到集合的末尾)

    Llen: llen 集合的名字 查看集合的长度

    Lpop:  lpop 集合的名称  移除集合中的第一个元素 

    Rpop: rop 集合的名称移除集合中的最后一个元素

    lindex : 获取制定索引的值   lindex 集合的名称  索引数值

    Lrem :删除指定数量的值: lrem 集合的名称  个数 值(集合中有重复值);

    Set集合

    Sadd:添加值 sadd  集合名称  值....

    Smembers:查看值 smembers  集合名称

    Scard : 集合中元素个数  scard  集合名称

    Srem : 删除集合中的某个值  srem  集合名称  值;

    SPOP: 随机从集合中移除一个数据   spop 集合名称

    Smove: 将集合中的某个值赋给另外一个集合: SMOVE 集合1 集合2  值;

    Sdiff: 差集

    Sinter:交集

    Sunion:并集

    Hash(哈希)(key value(key value))

    redis  hash是一个键值对的集合, 是一个string类型的field和value的映射表,适合用于存储对象(key value(key,value))

    Hset:存放一组键值对  hset key 值的名称  具体的值;(重复添加会覆盖原来的值)  

    Hget:获取一个值: hget key 值的名称

    Hmset: 设定多组键值对 HMSET customer id 1 name zs address beijing

    Hmget: 获取过个键对应的值 hmget customer id name address

    Hgetall: 获取所有的数据 hgetall  key值;

    Hdel: 删除某个指定的key的一组value  hdel customer id

    Hlen: 当前的key 有几组对应的键值对

    Hexists: 判断当前key中是否有指定名称的键值对: hexists customer id;

    Hkeys:获取所有的key

    Hvals: 获取所有的值

    Hincrby: 增加指定步长的数据  hincrby customer age 2;

    Hincrbyfloat: 在原有的基础上增加指定的小数。 hincrbyfloat customer course 0.5

    Hsetnx: 如果key存在不能添加到集合中,如果key不存在则添加到集合中。

    Zset

    zset(sorted set 有序集合) 是string类型的有序集合,也不可重复

    sorted set中的每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set 因此非常适合实现排名

    Zadd:创建集合并设定标准 zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5(等级划分的数据)

    游戏 : 青铜  白银 黄金。。。

    普通 vip

    Zrange: 查询所有的标准 ZRANGE zset01 0 -1 , ZRANGE zset01 0 -1 withscores

    ZRANGEBYSCORE :根据分数查询内容

    ZRANGEBYSCORE zset01 60 90 (注意如果前面添加”(” 表示不包含节点的意思) withscores limit 起始位置 数量.

    Zrem :删除元素 zrem 集合  某score下对应的value值。ZREM zset01 v5

    Zcard: 统计有几个键值对 zcard 集合

    Zcount: zcount 集合 数值1 数值2  统计区间的值

    Zrank : 统计对应的下标  zrank 集合名 values

    Zscore : zscore  集合名  values 获取对应的分数

    Java连接redis

    1.首先要设置redis.conf配置文件中的IP地址为0.0.0.0 

    2.放行6379端口: firewall-cmd --zone=public --add-port=6379/tcp --permanent 重启防火墙,systemctl restart firewalld.service,接着重启Redis服务 : redis-cli shutdown 然后 redis-server redis.conf

    3.如果需要设置密码,java中也需要相应的设置连接密码

    操作程序分为三步: 创建连接 -- 执行操作 -- 释放资源

    1.普通连接方法

    package com.offcn.test;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.offcn.bean.User;
    import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    
    import java.io.IOException;
    import java.util.Set;
    import java.util.UUID;
    
    public class Test1 {
    
        @Test//保存操作
        public void test1(){
            //建立连接,创建jedis对象:Redis所在服务器ip和reids的端口号
            Jedis jedis = new Jedis("192.168.146.128",6379);
            //jedis设置登录密码,可以不写
    //        jedis.auth("设置密码");
            //实现保存操作
            String key = "user";
            String value = "{\"uname\":\"zhangfei\",\"upwd\":\"123\"}";
            jedis.set(key,value);
            //释放资源
            jedis.close();
        }
    
        @Test//获取操作
        public void test2() throws IOException {
            //建立连接
            Jedis jedis = new Jedis("192.168.146.128",6379);
            //获取数据
            String user = jedis.get("user");
            System.out.println(user);
            ObjectMapper objectMapper = new ObjectMapper();
            User user1 = objectMapper.readValue(user, User.class);
            System.out.println(user1);
            //释放资源
            jedis.close();
        }
    
        @Test//使用jedis连接池保存数据
        public void test3() throws JsonProcessingException {
            //创建jedis连接池
            JedisPool jedisPool = new JedisPool("192.168.146.128",6379);
            //从池子中获取连接
            Jedis resource = jedisPool.getResource();
            //完成保存操作
            User user = new User();
            user.setUname("关羽");
            user.setUpwd("123");
            ObjectMapper objectMapper = new ObjectMapper();
            String s1 = objectMapper.writeValueAsString(user);
            UUID uuid = UUID.randomUUID();
            String s2 = uuid.toString().substring(0, 4);
            resource.set(s2,s1);
            //释放资源
            resource.close();
        }
    
        @Test//使用jedis连接池获取数据
        public void test4(){
            //创建jedis连接池
            JedisPool jedisPool = new JedisPool("192.168.146.128",6379);
            //从池子中获取连接
            Jedis resource = jedisPool.getResource();
            //获取数据
            String s = resource.get("e31e");
            System.out.println(s);
            //释放资源
            resource.close();
        }
    
        @Test//模拟一个业务层的方法
        public void test5(){
            ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
            JedisPool pool = (JedisPool) context.getBean("pool");
            Jedis resource = pool.getResource();
            System.out.println(resource);
        }
    
    }

    2.连接池方式

    package com.offcn.test;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.offcn.bean.User;
    import org.junit.Test;
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    
    import java.io.IOException;
    import java.util.Set;
    
    public class Test2 {
    
        @Test//向redis缓存中保存数据
        public void test1() throws JsonProcessingException {
            //redis类似于连接数据库的步骤,其实redis就是一个数据库,他把数据保存到内存中
            //建立连接
            Jedis jedis = new Jedis("192.168.146.128",6379);
            //创建我们要保存的数据
            User user = new User();
            user.setUname("熊大");
            user.setUpwd("123");
            ObjectMapper objectMapper = new ObjectMapper();
            String s = objectMapper.writeValueAsString(user);
            //执行保存操作
            jedis.set("key1", s);
            //释放资源
            jedis.close();
        }
    
        @Test//获取jedis中的数据
        public void test2() throws IOException {
            //创建连接
            Jedis jedis = new Jedis("192.168.146.128",6379);
            //读取数据
            String value1 = jedis.get("key1");
            ObjectMapper objectMapper = new ObjectMapper();
            User user = objectMapper.readValue(value1, User.class);
            System.out.println(user.getUname()+"=="+user.getUpwd());
            //获取所有的key
            Set<String> keys = jedis.keys("*");
            for(String s:keys){
                System.out.println(s);
            }
            //释放资源
            jedis.close();
        }
    
        @Test//使用连接池保存数据到redis中
        public void test3() throws JsonProcessingException {
            //获取连接池
            JedisPool pool = new JedisPool("192.168.146.128",6379);
            //从连接池中获取jedis连接
            Jedis resource = pool.getResource();
            //创建资源并保存
            User user = new User();
            user.setUname("熊二");
            user.setUpwd("456");
            ObjectMapper objectMapper = new ObjectMapper();
            String s = objectMapper.writeValueAsString(user);
            //执行保存操作
            resource.set("key2",s);
            //释放资源
            resource.close();
        }
    
        @Test//使用连接池获取jedis中的值
        public void test4() throws IOException {
            //创建连接池
            JedisPool pool = new JedisPool("192.168.146.128",6379);
            //从连接池中获取连接
            Jedis resource = pool.getResource();
            //执行获取操作
            String value2 = resource.get("key2");
            //用jackson转化为对象
            ObjectMapper mapper = new ObjectMapper();
            User user = mapper.readValue(value2, User.class);
            System.out.println(user);
            //释放资源
            resource.close();
        }
    }

    Spring整合Redis

    在业务层,新增一个Redis框架,作用是用来保存业务数据,或者从Redis库中获取业务数据,Redis是内存数据库,MySQL/Oracle是非内存数据库;所以如果把常用的不经常变化的业务数据保存到Redis库,那么就可以在业务层当调用这些数据的时候,不需要向MySQL等数据库发送SQL实现查询,只需要从Redis中直接获取即可,这样就可以提高效率

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
    
        <!--spring整合Redis-->
        <!--配置jedis池的参数-->
        <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <!-- 最大连接数 -->
            <property name="maxTotal" value="10"/>
            <!-- 空闲连接数 -->
            <property name="maxIdle" value="2"/>
            <!-- 设置链接池的连接耗尽时,是否等待 -->
            <property name="blockWhenExhausted" value="true"/>
            <!-- 最大等待时间 -->
            <property name="maxWaitMillis" value="30000"/>
            <!-- 获取到连接时,是否检查链接的有效性 -->
            <property name="testOnBorrow" value="true"/>
        </bean>
    
        <!--由参数把池造出来-->
        <bean id="pool" class="redis.clients.jedis.JedisPool">
            <!--参数注入-->
            <constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg>
            <!--ip注入-->
            <constructor-arg name="host" value="192.168.146.132"></constructor-arg>
            <!--端口注入-->
            <constructor-arg name="port" value="6379"></constructor-arg>
        </bean>
    </beans>

    模拟一个业务层方法

    package com.offcn.test;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.ObjectReader;
    import com.offcn.bean.User;
    import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    import java.util.UUID;
    
    public class Test1 {
    
        @Test
        public void test5(){
            //此单元模拟一个业务层的方法
            ApplicationContext context = new ClassPathXmlApplicationContext("spring-redis.xml");
            JedisPool pool = (JedisPool) context.getBean("pool");
            Jedis resource = pool.getResource();
            System.out.println(resource);
        }
    }
    

    Spring整合mybatis,实现自定义二级缓存

    Mybatis二级缓存原理

    Mybatis的二级缓存是指mapper映射文件。二级缓存的作用域是同一个namespace下的mapper映射文件内容,多个SqlSession共享。Mybatis需要手动设置启动二级缓存。

    在同一个namespace下的mapper文件中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则二级缓存清空。

    二级缓存是mapper级别的。Mybatis默认是没有开启二级缓存。

     

    第一次调用mapper下的SQL去查询用户信息。查询到的信息会存到该mapper对应的二级缓存区域内。

    第二次调用相同namespace下的mapper映射文件中相同的SQL去查询用户信息。会去对应的二级缓存内取结果。

    如果调用相同namespace下的mapper映射文件中的增删改SQL,并执行了commit操作。此时会清空该namespace下的二级缓存。

    展开全文
  • Linuxredis集群

    千次阅读 2016-05-21 11:53:53
    上一篇文章介绍了redis的安装,【Linuxredis的安装。这篇文章总结一下redis的集群。 我们为什么要搭建redis集群呢?redis集群的作用: 1、主从备份,防止主机宕机 2、读写分离、分担master的任务 3、任务分离...

    上一篇文章介绍了redis的安装,【Linux】redis的安装。这篇文章总结一下redis的集群。

    我们为什么要搭建redis集群呢?redis集群的作用:

    1、主从备份,防止主机宕机

    2、读写分离、分担master的任务

    3、任务分离,如从服务分别分担备份工作与计算工作。

       之前的准备工作都做好了,将redis安装成功以后,就可以搭建集群了。既然是集群,就肯定是有主从复制。redis集群一般情况下是三主三从。

       Redis启动成功后,通过之前的博客可以看到启动的端口是6379看这个可以通过指定配置文件修改,我们就来制定以下配置文件 ,将如下文件分别拷贝到6个文件夹中,并进行配置。

     设置6个同样的redis服务,三主三从,redis集群采用了数据分片的技术。我们可以是6个虚拟机,6IP,也可以是1个虚拟机,同一个IP,6个端口号。我的Demo中采用的是一个虚拟机,不同端口的方式。

    1、创建6个文件夹:

    在如下路径下创建6个文件夹,637963806381638263836384

    mkdir 文件夹名称

    如图:


    2、复制redis服务到6个文件夹中,并且设置六个conf文件,如下配置

    port 6379
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    daemonize yes

    只是端口号配置各自的。


    3、启动redis服务,启动时指向各自的redis.conf

    6379 文件夹下:  ./redis-server ./redis.conf

    6380 文件夹下:  ./redis-server ./redis.conf

    ……

    查看启动的redis服务进程状态: ps –ef|grep redis

    如图:

    4、创建集群

    1、安装ruby环境

        因为redis-trib.rb是有ruby语言编写的所以需要安装ruby环境。

    ./redis-server      没有指向conf,会去找默认的conf

    如图:


    gem install redis

    如图:


    2、创建集群

    首先,进入redis的安装包路径下:

    cd /usr/local/src/redis/redis-3.0.7/src

    6个虚拟机之间互相通信

    ./redis-trib.rb create –replicas 1 192.168.246.44:6379  192.168.246.44:6380 192.168.246.44:6381  192.168.246.44:6382

    192.168.246.44:6383 192.168.246.44:6384

    如图:


    测试:集群搭建好了要进行测试。这里就不贴图了,测试完没有截图。


    展开全文
  • 基于LinuxRedis集群搭建 我们为什么要搭建redis集群呢?redis集群的作用: 1、主从备份,防止主机宕机 2、读写分离、分担master的任务 3、任务分离,如从服务分别分担备份工作与计算工作。 &nbsp; &nbsp;...
  • linux 配置redis自启动

    2019-11-05 21:36:30
    1.redis的简介 redis :是基于key-value 形式的进行存储的内存行数据库 ...1.31 作用:存储数据 二 2.1Redis 是一个NOSQL数据库,字面理解:不适用sql命令操作数据软件 2.2 NoSql:英文全称not only sql...
  • Linux环境部署redis缓存服务器,redis的配置说明

    千次阅读 多人点赞 2020-11-28 17:30:49
    关于redis在网站架构中的位置和作用,大家可以参见我的另一篇文章: https://blog.csdn.net/qq_45273552/article/details/109429549 这里笔者用的是“终端神器”—mobaxterm 来操作的linux,笔者也建议小伙伴们使用...
  • Linux & 安装redis

    2020-08-29 21:28:17
    作用:控制硬件,服务软件。 2、虚拟机概念:也是一个软件,虚拟出一台计算机环境 安装虚拟机(vmware)—>配置,会出现2个虚拟网卡。 3、在虚拟机上安装操作系统Linux(CentOS) 4、Linux历史知识 应用:安装在各种...
  • 今天给大家分享一个在linux 系统上安装 redis软件的方法   去redis官网(https://redis.io/)上下载linux版的redis文件 ... 前提:系统中得有lrzsz 安装包(作用是:提供将文件上传到linux系统中的方法)...
  • Linuxredis的基本命令

    2019-12-16 20:59:10
    1.KEYS 获取符合规则的键名列表 语法:keys pattern 示例: 2.EXISTS 判断一个键是否存在,如果存在,则返回整数类型1,否则返回0 语法:exists key 示例: 3.DEL 删除键,删除一个或多个,...提示作用 示例...
  • Linux系统环境部署redis

    2020-11-13 22:14:37
    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种...然后修改前面提到过的redis.properties 使用以下命令查看到有数据说明redis作用了 ...
  • linux 下安装redis

    2014-09-01 17:10:03
    Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发...redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用
  • 作用:控制硬件,服务软件 (3本书籍) 2_虚拟机概念:(软件):虚拟出一台计算机环境 安装虚拟机(vmware)>配置 2个虚拟网卡 3_在虚拟机上安装操作系统Linux(CentOS) 4_Linux历史知识 应用:安装在各种服务器之上,用于...
  • redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,ObjectC,Python,Ruby,Erlang等客户端,使用...
  • 这里只给出了简化后的安装过程,如果想看详细安装步骤和各个配置文件的作用,见:CentOS7安装Redis 1.下载 cd /usr/local/ mkdir redis wget http://download.redis.io/releases/redis-5.0.7.tar.gz 2.解压 tar -...
  • redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。以下是安装测试步骤:1,redis安装:[html]...
  • redis 127.0.0.1:6379&gt; 这个后面无论输入什么命令都没有返回 ok 或者其他的信息,一直保持截图的状态: 解决方法:在SecureCRT中设置Options--&gt;SessionOptions 然后剩下的按照截图来配置: ...
  • redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 一.安装tcl 否则在redis make test时出...
  • Linux下用Redis作为缓存服务器,加快数据库操作速度一.前言二.实验环境(rhel7.3版本)三.实验一配置server1前期准备:1.配置nginx服务2.配置php3.编写redis服务对应的测试文件配置server2配置server3测试: 一.前言 ...
  • Redis是目前众多NoSQL产品中非常有特点的一款,支持的数据类型和方法都非常丰富,做为一款具备持久化功能的软件,实际使中更多却是将其做为cache。...小工具能起大作用这不假(redis目前在国内最知名的案例
  • 学习视频:【linux系统安装配置redisRedis在Web上可以利用中层做状态服务器,主要用于存储缓存登录,模板锁,SessionID,WebSocket等,发挥所有的访问和操作进行验证的作用。 1.编译环境 安装Redis时需对二...
  • 如果对数据模型优化和对查询调优不起作用,DBA就可以使用缓存系统,比如Redis,它是一个可以提供内存和永久数据存储的键值数据存储系统。 由于Redis能够将数据快速读写至数据存储系统,比起关系型数据库它更具性能...
  • Redis1.0.1 简介2.0.1 String (字符串)2.1.1 string 作用场景3.0.1 Hash (哈希字典)3.1.1 Hash 作用场景4.0.1 list (列表)4.1.1 list 作用场景5.0.1 Set (集合)5.1.1 Set 作用场景6.0.1 zset (sorted set: 有序集合)...
  • LinuxRedis的安装、配置操作说明

    千次阅读 2012-11-03 21:42:12
    redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 以下是安装测试步骤: 1,redis...
  • redis作用以及部署

    2020-03-11 19:32:34
    熟练掌握linux 知识 提升项目部署能力
  • 文章目录Linux操作系统Redis服务(一)Redis的主从复制1. 概述2. 一主二从- 配置- 测试主从读写- 主从复制原理3. 哨兵模式- 概述- 哨兵的作用- 多哨兵模式- 测试 Linux操作系统 Redis服务 (一)Redis的主从复制 1. ...
  • redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 以下是安装测试步骤: 1,redis安装: ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 223
精华内容 89
关键字:

linuxredis作用

linux 订阅
redis 订阅