Redis 基本命令

1.   安装Redis3

1.下载redis3的稳定版本,下载地址http://download.redis.io/releases/redis-3.2.10.tar.gz

2.上传redis-3.2.10.tar.gz到服务器

3.解压redis源码包

tar -zxvf redis-3.2.10.tar.gz -C /usr/local/src/

4.进入到源码包中,编译并安装redis

cd /usr/local/src/redis-3.2.10/

make && make install

5.报错,缺少依赖的包

缺少gcc依赖(c的编译器)

6.配置本地YUM源并安装redis依赖的rpm包

yum -y install gcc

7.编译并安装

make && make install

8.报错,原因是没有安装jemalloc内存分配器,可以安装jemalloc或直接输入

make MALLOC=libc && make install

 

9.重新编译安装

make MALLOC=libc && make install

10.启动redis的服务端,有两种方式,一种是前端启动,这种启动需要占用一个链接,启动后对于当前会话页面不能进行操作,不能关闭,不然redis服务就会退出。所以我们更希望它可以不提示这个框框,然后也不影响我们的正常的代码显示。那么我们就要修改服务端启动方式为后端启动。

进入src目录下  启动命令:./redis.server

将Redis.conf文件copy到src目录下。

这个时候,按住shift键加冒号这俩键(需要是在英文输入下),进入底行模式输入set nu 显示行号,找到128 改为yes

 

开始启动

 

11.查看redis进程状态

ps -ef | grep redis

进入cli模式,编辑测试一下

 

12.使用命令行客户的连接redis

redis-cli

 

13.关闭redis

redis-cli shutdown

 

17.配置redis密码

config set requirepass 123

(Ps:需重启Redis才能生效)

 查询密码:

   redis 127.0.0.1:6379> config get requirepass
   (error) ERR operation not permitted

   密码验证:

   redis 127.0.0.1:6379> auth test123
   OK

   再次查询:

   redis 127.0.0.1:6379> config get requirepass
   1) "requirepass"
   2) "test123"

3、登陆有密码的Redis:

 

   在登录的时候的时候输入密码:

   redis-cli -p 6379 -a test123

   先登陆后验证:

   redis-cli -p 6379

   redis 127.0.0.1:6379> auth test123
   OK

添加redis的java依赖

  <dependency>

    <groupId>redis.clients</groupId>

    <artifactId>jedis</artifactId>

    <version>2.9.0</version>

  </dependency>

 

1.   Redis客户端

1.1.  Java客户端jedis

Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。

         在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis

 

2.   Redis数据类型

3.   Redis持久化

  • Redis DataBase(简称RDB)
  • Append-only file (简称AOF)
  • 执行机制:快照,直接将databases中的key-value的二进制形式存储在了rdb文件中
  • 优点:性能较高(因为是快照,且执行频率比aof低,而且rdb文件中直接存储的是key-values的二进制形式,对于恢复数据也快)
  • 使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能
  • 缺点:在save配置条件之间若发生宕机,此间的数据会丢失
  • RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候
  • 执行机制:将对数据的每一条修改命令追加到aof文件
  • 优点:数据不容易丢失
  • 可以保持更高的数据完整性,如果设置追加file的时间是1s,如果redis发生故障,最多会丢失1s的数据;且如果日志写入不完整支持redis-check-aof来进行日志修复;AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall
  • 缺点:性能较低(每一条修改操作都要追加到aof文件,执行频率较RDB要高,而且aof文件中存储的是命令,对于恢复数据来讲需要逐行执行命令,所以恢复慢)
  • AOF文件比RDB文件大,且恢复速度慢

如果既配置了RDB,又配置了AOF,则在进行数据持久化的时候,都会进行,但是在根据文件恢复数据的时候,以AOF文件为准,RDB文件作废

4.   redis主从复制

为了高可用,引入redis的主从复制的概念。

 

4.1.  准备工作

完成主从复制,最少需要两台服务器,讲学方便,在一台服务器中演示即可。

 

但是一台服务器中需要启动两个redis

 

第一步:复制一个redis

[root@redis01 redis0707]# cp bin/ bin2 –r

第二步:修改端口

将bin2目录下的redis.conf文件中的端口修改为6380

 

 

4.2.  主机配置

无需配置

4.3.  从机配置

 

从机是只读的。

5.   Redis集群

1.1     redis-cluster架构图

 

 

 

1、  集群通信是通过“ping-pong”机制进行通信;

2、  客户端不需要将所有的节点都连接上,只需要连接其中一个节点即可。

3、  集群中存储数据是存储到一个个的槽中,集群中槽的个数是固定的:16384,槽的编号是【0-16383】。在集群中存储数据时,会根据key进行计算,计算出一个结果,然后将这个结果和16384取余,余数就是这个key将要存储的槽的编号。

注意:槽的编号之间不能断开。

 

槽的计算会将数据保存的很平均,不会产生一个槽满一个槽空的情况。

 

 

1.2     redis-cluster投票:容错

 

什么时候整个集群不可用(cluster_state:fail)? 

    a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完成时进入fail状态..

b:如果集群超过半数以上master挂掉,无论是否有slave集群进入fail状态.

 

posted @ 2019-03-06 21:05  VIP8cnbl  阅读(118)  评论(0编辑  收藏  举报