REDIS安装及部署

Redis的定义

开源的
使用c语言编写
Kv存储系统
Nosql数据库(非关系型数据库)
与关系型数据库的差别:
存储方式:
Nosql:kv key:{“name”,zhansan ”age”18}
关系行数据库:表结构还要主外键关联
读写数据:
Nosql:读写数据快。不提供主外键关联
关系数据库:读写速度慢
常见的nosql:
Mongodb:(文档型数据库)bson 二进制的json
Redis:(kv)
Hbase:(海量数据分布式存储系统,属于hadoop生态体系)

安装部署(linux)

  1. 安装步骤

1)下载一个redis安装包
2)上传到linux
3)解压redis安装包 tar -zxvf redis-2.8.19.tar.gz
4)进入redis解压包目录,编译 make
5)安装: make PREFIX=/usr/local/redis/ install
配置:
拷贝一份redis.conf文件到安装目录
启动redis:
bin/redis-server ./redis.conf
Bin/redis-cli ./redis.conf

安装图形化

第一步:
rz 上传redis.2.8.19.tar.gz
这里写图片描述
工具上传:第二种上传方式
这里写图片描述
弹出图形化上传页面
这里写图片描述
第二步:
ll 查看上传的文件
这里写图片描述
第三步:
tar -zxvf redis-2.8.19.tar.gz 解压到当前目录
这里写图片描述
第四步:进入解压目录编译 make 将.c编译成可执行.o文件
这里写图片描述
第五步:安装到指定目录 make PREFIX=/usr/local/redis install
这里写图片描述
第六步:拷贝redis.conf到指定目录 cp redis.conf /usr/local/redis/
这里写图片描述

第七步:进入安装目录/usr/local/redis/bin下有几个可执行文件
这里写图片描述

redis-benchmark —-性能测试工具
redis-check-aof —-检查修复aof文件 appendonly file 日志文件、数据持久化
redis-check-dump —-检查快照持久化文件
redis-cli —-命令行客户端
redis-server —-redis服务器启动命令
第七步:启动redis-server
这里写图片描述

2)配置redis
i.选择redis节点1为主服务器,进入/home/ redis/redis-2.8.17。使用vi redis.conf命令,修改文件中的daemonize no修改为daemonize yes,设置服务器的端口port,如使用端口8586。
这里写图片描述

ii.选择redis节点2为从服务器,进入/home/ redis/redis-2.8.17。从属服务器的设置和主服务步骤一致,另需添加主服务器地址和端口号,如图
这里写图片描述
3)配置Sentinel管理器
i.创建sentinel-idc.conf(自定义)文件。在文件中写入以下内容,红色部分根据具体的需求可以修改并保存文件
这里写图片描述

ii.各项参数说明:
port 28586 –sentinel监听端口(自定义只有没有被使用的端口都可被定义)
sentinel monitor mymaster 10.136.90.180 8586 1 —redis主服务器 master1 为主服务器名称(由于在此以10.136.90.180为主服务器,则使用180上的Redis的服务器的ip和port。主服务器的名可自定义但必须所有的名称一致,即所有红色字体中的master1必须同时修改)
sentinel failover-timeout mymaster 18000 —故障转移超时时间
sentinel down-after-milliseconds mymaster 30000 —主服务器宕机时间
sentinel parallel-syncs mymaster 1 —执行故障转移是,1个从服务器参与同步
iii.将文件放入到主服务器及从服务器的安装目录下,如下图:
这里写图片描述
iv.注意:主从服务器配置文件中的sentinel monitor mymaster 10.136.90.180 8586 1中的主服务的名称、ip、端口必须是一致。只有这样才能保证sentinel管理的主服务器是一致的并保证Redis的高可用。
4)启动redis主程序和Sentinel管理器
i.进入主服务器Redis的src目录,使用./redis-server redis.conf,启动主服务器的Redis服务。使用./redis-server sentinel-idc.conf –sentinel,启动主服务器的管理器。
这里写图片描述
ii.同样启动从服务器的redis服务器和Sentinel管理器。
iii.注意:Sentinel管理器启动后,不可使用“ctrl+C”或“ctrl+Z”退出

测试

4Redis客户端应用(jedis) &jedis分片(集群)
官网:www.redis.io
4.1Redis客户端(jedis)
1)下载jar
这里写图片描述
2)实例化jedis,操作redis缓存

Jedis conn= new Jedis("192.168.13.111", 6379);
        conn.flushAll();
        conn.set("stringkey1", "aaaaaaaaaa");
        System.out.println(conn.get("stringkey1"));
        conn.set("stringkey2", "hello");
        conn.append("stringkey2", " world!");
        System.out.println(conn.get("stringkey2"));
        List<String> listval = listTest(conn);
        for (String string : listval) {
            System.out.println(string);
        }

List类型:

public static List<String> listTest(Jedis conn){

        conn.lpush("listkey1", "aa","bb","cc");
        return conn.lrange("listkey1", 0, -1);
    }

Jedis分片

什么是分片:redis可以把客户端请求分不到不同的服务器。

JedisPoolConfig poolConfig = new JedisPoolConfig();
        //设置连接池最大连接数
        poolConfig.setMaxIdle(500);
        Hashing algo = Hashing.MURMUR_HASH;
        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(2);
        JedisShardInfo A = new JedisShardInfo("192.168.13.111", 6379);
        JedisShardInfo B = new JedisShardInfo("192.168.13.111", 6380);
        shards.add(A );
        shards.add(B);
//Jedis的连接池配置poolConfig
// 分片信息 shards 
//hash算法 algo 
        pool = new ShardedJedisPool(poolConfig , shards , algo );

模拟一个6380端口服务器:

1)拷贝一份redis.conf重命名为redis6380.conf cp redis.conf redis6380.conf
2)Vi编辑redis6380.conf
pidfile /var/run/redis6380.pid
port 6380
测试:

private static int index;

    public static void main(String[] args) {
        ShardedJedis jds = pool.getResource();

        System.out.println(jds.get("5"));
//      ShardedJedis jds;
//      for (int i = 0; i < 100; i++) {
//          jds= pool.getResource();
//          String key = String.valueOf(index++);
//          System.out.println(jds.set(key , "aaaaaaaaaaaaaaa"));
//          System.out.println(key+":"+jds.getShard(key).getClient().getPort());
//      }
    }

Jedis客户端无法连接redis服务器

检查redis服务端ip地址和端口号是否正确;
检查redis服务端是否设置客户端访问密码:jedis.auth(“123456”);
检查inux防火墙是否关闭
Linux关闭防火墙命令步骤:
永久性生效,重启后不会复原
开启:chkconfig iptables on
关闭:chkconfig iptables off

即时生效,重启后复原
开启:service iptables start
关闭:service iptables stop

Redis运维

  1. 持久化

RDB:是使用快照的方式来把一段时间的数据做持久化 dump.rdb
优势:持久化的文件较小。
劣势:因为存储的是一段时间的数据,所以会导致这一时间段的数据丢失
AOF:是以记录日志的方式
优势:每修改同步,每秒钟同步一次,不同步
劣势:文件较大
具体配置
appendonly yes

2.列表内容

主从复制
在REPLICATION下面有一个slaveof
3.常用运维命令以及注意事项

运维命令
DBSIZE Key的数量
FLUSHALL 清空当前服务器管理的数据库中的所有Keys
FLUSHDB 清空当前数据库中的所有Keys
SAVE RDB持久化模式
SHUTDOWN停止server端
SLAVEOF host port手动配置当前为从服务器
monitor 打开控制台
client kill 关闭某个客户端
sync 手动同步
Bgrewriteaof 后台写aof
Bgsave 后台写rdb
shutdown save|nosave 关闭服务器—保存/不保存
info 显示服务器信息
注意事项
如果不小心flushall了,应该首先关闭redis服务进程shutdown nosave
然后编辑aof然后在aof日志文件里面的flashall三行标识符删除掉
重启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值