Redis安装与操作

Redis

Redis的安装

Redis 是 c 语言开发的。

安装 redis 需要 c 语言的编译环境。如果没有 gcc 需要在线安装。yum install gcc-c++

 

安装步骤:

第一步:redis 的源码包上传到 linux 系统。

 Redis安装与操作

第二步:解压缩 redis。

tar –zxvf redis-3.0.0.tar.gz

 

第三步:编译。进入 redis 源码目录。make  

cd redis-3.0.0

make

第四步:安装。make install PREFIX=/usr/local/redis

PREFIX 参数指定 redis 的安装目录。

 Redis安装与操作

Redis的配置文件conf复制修改到对应的位置

Redis安装与操作

 

 Redis安装与操作

 

 

 

 

 

 

 

 

连接 redis

redis 的启动:

第一种前端

 Redis安装与操作

连接redis

Redis安装与操作

退出:

Redis安装与操作

 

redis 的第二种后端启动修改redis.conf配置文件:

Redis安装与操作

Redis安装与操作

因为redis.conf不是原始的配置文件,需要我们指定使用redis.conf作为配置文件

./redis-server ../conf/redis.conf

Redis安装与操作

Redis安装与操作

 

Redis五种数据类型

1、String:key-value(做缓存)

Redis 中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis 是单线程

的。Redis 中不适合保存内容大的数据。

get、set、

 Redis安装与操作

 

incr:加一(生成 id) 

 Redis安装与操作

decr:减一

 Redis安装与操作

Keys *: 所有的 key

Redis安装与操作 

 

2、Hash:key-fields-values(做缓存)

相当于一个 key 对于一个 map,map 中还有 key-value

使用 hash 对 key 进行归类。

Hset:向 hash 中添加内容

hset setName field value

 Redis安装与操作

Hkeys:查看 hash 中的 key:

 Redis安装与操作

Hvals:查看 hash 中的 value

 Redis安装与操作

Hget:从 hash 中取内容

 Redis安装与操作

Hgetall:查看所有的 key 和 value 

 Redis安装与操作

 

 

Hdel:删除 hash 中的 key

 Redis安装与操作

 

3、List:有顺序可重复

Lpush:添加一个 list,从左边开始添加

 Redis安装与操作

Rpush:从右边开始添加

 Redis安装与操作

Lpop 弹出元素

 Redis安装与操作

Rpop 弹出元素

 Redis安装与操作

 

4、Set:元素无顺序,不能重复 

 Redis安装与操作

Srem:删除元素

 Redis安装与操作

 

还有集合运算命令,自学。

sdiff: 差集

Redis安装与操作

sinter:交集

Redis安装与操作

sunion:并集

Redis安装与操作

5、SortedSet(zset):有顺序,不能重复 

 Redis安装与操作

Redis安装与操作

Redis安装与操作

 

Key 命令

设置 key 的过期时间。

Expire key second:设置 key 的过期时间

Ttl key:查看 key 的有效期

Persist key:清除 key 的过期时间。Key 持久化。

Redis安装与操作

 

Redis的持久化方案

Redis 的所有数据都是保存到内存中的。

Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘。Redis 默认支持的持久化方案。

aof 形式:append only file。把所有对 redis 数据库操作的命令,增删改操作的命令。保存到

文件中。数据库恢复时把所有的命令执行一遍即可。

 

在 redis.conf 配置文件中配置。

Rdb:

Redis安装与操作

Aof 的配置:

Redis安装与操作

两种持久化方案同时开启使用 aof 文件来恢复数据库。

 

Redis集群的搭建

redis-cluster 架构图

Redis安装与操作

redis-cluster 投票:容错

Redis安装与操作

架构细节:

(1)所有的 redis 节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带

宽.

(2)节点的 fail 是通过集群中超过半数的节点检测失效时才生效.

(3)客户端与 redis 节点直连,不需要中间 proxy 层.客户端不需要连接集群所有节点,连接集群

中任何一个可用节点即可

(4)redis-cluster 把所有的物理节点映射到[0-16383]slot上,cluster 负责维护

node<->slot<->value

Redis 集群中内置了 16384 个哈希槽,当需要在Redis 集群中放置一个 key-value 时,

redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个

key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈

希槽映射到不同的节点

Redis安装与操作

Redis 集群的搭建

Redis 集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。

Redis 集群至少需要 6 台服务器。

搭建伪分布式。可以使用一台虚拟机运行 6 个 redis 实例。需要修改 redis 的端口号 7001-7006

集群搭建环境

1、使用 ruby 脚本搭建集群。需要ruby 的运行环境。

安装 ruby

yum install ruby

yum install rubygems

 

2、安装 ruby 脚本运行使用的包。

将 redis-3.0.0.gem.tar.gz 上传到根目录

Redis安装与操作

安装

Redis安装与操作

gem install redis-3.0.0.gem

 

 

创建redis-cluster文件

Redis安装与操作

复制脚本

Redis安装与操作

Redis安装与操作

Redis安装与操作

复制redis

注意:复制的redis必须是最原始的,里面不许有数据

Redis安装与操作

Redis安装与操作

Redis安装与操作

修改redis7001、redis7002、redis7003、redis7004、redis7005、redis7006的端口号以及取消注释允许搭建集群

Redis安装与操作

Redis安装与操作

 

Redis安装与操作

Redis安装与操作

 

Redis安装与操作

Redis安装与操作

Redis安装与操作

Redis安装与操作

 Redis安装与操作

Redis安装与操作

Redis安装与操作

Redis安装与操作

Redis安装与操作 

Redis安装与操作

Redis安装与操作

Redis安装与操作

Redis安装与操作

Redis安装与操作

启动:

Redis安装与操作

cd redis7001/bin

./redis-server  ../conf/redis.conf

cd ../../

cd redis7002/bin

./redis-server  ../conf/redis.conf

cd ../../

cd redis7003/bin

./redis-server  ../conf/redis.conf

cd ../../

cd redis7004/bin

./redis-server  ../conf/redis.conf

cd ../../

cd redis7004/bin

./redis-server  ../conf/redis.conf

cd ../../

cd redis7006/bin

./redis-server  ../conf/redis.conf

cd ../../

 

 

 Redis安装与操作

Redis安装与操作

创建批量关闭

Redis安装与操作

cd redis7001/bin

./redis-cli -p 7001 shutdown

./redis-cli -p 7002 shutdown

./redis-cli -p 7003 shutdown

./redis-cli -p 7004 shutdown

./redis-cli -p 7005 shutdown

./redis-cli -p 7006 shutdown

cd ../../

Redis安装与操作

使用ruby脚本搭建集群

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

Redis安装与操作

集群使用的方法

Redis安装与操作

cd redis7001/bin

./redis-cli -p 7001 –c

解释:./redis-cli -p 7001 –c 通过端口号7001redis连接集群里的所有redis   

 ./redis-cli -p 7001

通过端口号7001redis

–c

集群里的所有的redis

Redis安装与操作

Eclipse操作jedis

使用工具类

Redis安装与操作

Redis安装与操作

Jedis与spring整合

Redis安装与操作

<!-- 配置单机版的jiedis -->

    <bean id="jedisClientPool" class="com.igeek.common.util.jedis.JedisClientPool"/>

   

    <!-- 配置一个jedisPool对象 -->

    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">

       <constructor-arg name="host" value="192.168.8.111"/>

       <constructor-arg name="port" value="6379"/>

    </bean>

    <!-- 配置集群版的jedis -->

    <bean id="jedisClientCluster" class="com.igeek.common.util.jedis.JedisClientCluster"/>

    <!-- 配置一个jedisCluster对象 -->

    <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">

       <constructor-arg name="nodes">

           <set>

              <bean class="redis.clients.jedis.HostAndPort">

                  <constructor-arg name="host" value="192.168.8.111"/>

                  <constructor-arg name="port" value="7001"/>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                  <constructor-arg name="host" value="192.168.8.111"/>

                  <constructor-arg name="port" value="7002"/>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                  <constructor-arg name="host" value="192.168.8.111"/>

                  <constructor-arg name="port" value="7003"/>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                  <constructor-arg name="host" value="192.168.8.111"/>

                  <constructor-arg name="port" value="7004"/>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                  <constructor-arg name="host" value="192.168.8.111"/>

                  <constructor-arg name="port" value="7005"/>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                  <constructor-arg name="host" value="192.168.8.111"/>

                  <constructor-arg name="port" value="7006"/>

              </bean>

           </set>

       </constructor-arg>

    </bean>