linux 关闭redis 命令_redis学习

一、 Redis 介绍

1 Redis 简介

Remote Dictionary Server(Redis)是一个开源的使用 ANSI C 语言编写、支持网络、可

基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。(string(字符串)、 list(双向链表)、dict(hash 表)、set(集合)、zset(排序 set)、hyperloglog(基数估算))

2 Redis 的特点

2.1 优点:支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash 表)、set(集合)、zset(排序 set)、hyperloglog(基数估算)

2. 支持持久化操作,可以进行 aof 及 rdb 数据持久化到磁盘,从而进行数据备份或数

据恢复等操作,较好的防止数据丢失的手段。

3. 支持通过 Replication 进行数据复制,通过 master-slave 机制,可以实时进行数据的

同步复制,支持多级复制和增量复制,master-slave 机制是 Redis 进行 HA 的重要手段。

4. 单进程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。

二、 安装 Redis 单机版

第一步 需要在 linux 系统中安装 gcc

命令:yum install -y gcc-c++

第二步 需要将下载好的 redis 压缩包添加到 linux 服务器中

版本:redis-3.0.0.tar.gz

redis 的版本:副版本号奇数版本号是测试版,不建议在生产环境中使用。

偶数版本时稳定版建议在生产环境中使用。

3.0 版本更新比较大。集成了集群技术

第三步 解压压缩包

命令:tar -zxvf redis......

第四步 编译 redis

命令:进入 redis 的解压完毕的根目录下 执行命令:make

第五步 安装 redis

命 令 : 进 入 redis 的 解 压 完 毕 的 根 目 录 下 , 执 行 命 令 : make install

PREFIX=/usr/local/redis

第六步:启动 redis

1,前端启动

在 bin 目录下执行命令: ./redis-server (ctrl+c)退出 redis

2.后端启动

(1)先将 redis 解压目录下的 redis.conf 文件拷贝到 安装好的 redis 的 bin 目录下

命令:cp redis.conf /usr/local/redis/bin

(2)修改拷贝过来的 redis.conf 配置文件

命令:vim redis.conf

将 daemonize no 改为 yes

(3)启动 redis

在 bin 目录下执行命令:./redis-server redis.conf

(4)查看 redis 启动是否成功

输入命令:ps aux|grep redis

(5) 关闭 redis 的命令

./redis-cli shutdown

第七步:测试 redis

在 bin 目录下启动 redis 自带的客户端 ./redis-cli

常见 redis 命令:

ping--->pong

redis 127.0.0.1:6379> SET name kevin

OK

redis 127.0.0.1:6379> GET name

"kevin"

incr 让当前键值以 1 的数量递增,并返回递增后的值

incrby 可以指定参数一次增加的数值,并返回递增后的值

decr 让当前键值以 1 的数量递减 并返回递减后的值

decrby 可以指定参数一次递减的数值,并返回递减后的值

incrbyfloat 可以递增一个双精度浮点数

append 作用是向键值的末尾追加 value。如果键不存在则将该键的值设置为 value。返

回值是追加后字符串的总长度。

mget/mset 作用与 get/set 相似,不过 mget/mset 可以同时获得/设置多个键的键值

del 根据 key 来删除 value

flushdb 清除当前库的所有数据

2 Hash(hash 表)

435ab8033c9639e632e467516bbe5f3c.png

Redis 的哈希是键值对的集合。 Redis 的哈希值是字符串字段和字符串值之间的映射,

因此它们被用来表示对象

示例:

redis 127.0.0.1:6379> HSET key field value

OK

redis 127.0.0.1:6379> HGET key field

value

hset 存储一个哈希键值对的集合

hset key field value

hget 获取一个哈希键的值

hget key field

hmset 存储一个或多个哈希是键值对的集合

hmset key field1 value1 ......fieldN keyN

hmget 获取多个指定的键的值

hmget key field1 ... fieldN

hexists 判断哈希表中的字段名是否存在 如果存在返回 1 否则返回 0

hexists key field

hdel 删除一个或多个字段

hdel key field

hgetall 获取一个哈希是键值对的集合

hgetall key

hvals 只返回字段值

hvals key

hkeys 只返回字段名

hkeys key

hlen 返回 key 的 hash 的元素个数

hlen key

3 List( 链表 )

2ce44ee30b1407e9bed2c20f14aaeaab.png

4 Set( 集合)

5 SortedSet( 有序集合)zset

6 Redis 中的其他命令

ping 测试 redis 是否链接 如果已链接返回 PONG
echo value 测试 redis 是否链接 如果已链接返回 echo 命令后给定的值
keys * 返回所有的 key 可以加*通配
exists key 判断 string 类型一个 key 是否存在 如果存在返回 1 否则返回 0
expire key time(s) 设置一个 key 的过期时间 单位秒。时间到达后会删除 key 及 value
ttl key 查询已设置过期时间的 key 的剩余时间 如果返回-2 表示该键值对已经被删除
persist 移除给定 key 的过期时间
select dbindex 选择数据库(0-15)
move key dbIndex 将当前数据库中的 key 转移到其他数据库中
dbsize 返回当前数据库中的 key 的数目
info 获取服务器的信息和统计
flushdb 删除当前选择的数据库中的 key

四、 Redis 的配置以及持久化方案

1 redis.conf 文件

是否在后台执行,yes protected-mode yes

save 900 1

save 300 10

save 60 10000

e84eaed92524b7ba2f625a1dff4092df.png

logfile /var/log/redis/redis-server.log 指定了记录日志的文件

文件里还需要 更改端口号 还有集群 66%左右 RDB方式和aof方式

2 Redis 的数据持久化

2.1 RDB 方式
对内存中数据库状态进行快照
RDB 方式:将 Redis 在内存中的数据库状态保存到磁盘里面,RDB 文件是一个经过压
缩的二进制文件,通过该文件可以还原生成 RDB 文件时的数据库状态 ( 默认下,持久化到
dump.rdb 文件,并且在 redis 重启后,自动读取其中文件,据悉,通常情况下一千万的字
符串类型键,1GB 的快照文件,同步到内存中的 时间是 20-30 秒)
RDB 的生成方式:
1)执行命令手动生成
有两个 Redis 命令可以用于生成 RDB 文件,一个是 SAVE,另一个是 BGSAVE SAVE
命令会阻塞 Redis 服务器进程,直到 RDB 文件创建完毕为止,在服务器进程阻塞期间,服
务器不能处理任何命令请求,BGSAVE 命令会派生出一个子进程,然后由子进程负责创建
RDB 文件,服务器进程(父进程)继续处理命令请求,创建 RDB 文件结束之前,客户端发
送的 BGSAVE 和 SAVE 命令会被服务器拒绝
2)通过配置自动生成
可以设置服务器配置的 save 选项,让服务器每隔一段时间自动执行一次 BGSAVE 命
令,可以通过 save 选项设置多个保存条件,但只要其中任意一个条件被满足,服务器就会
执行 BGSAVE 命令
例如:
save 900 1
save 300 10
save 60 10000
那么只要满足以下三个条件中的任意一个,BGSAVE 命令就会被执行
服务器在 900 秒之内,对数据库进行了至少 1 次修改
服务器在 300 秒之内,对数据库进行了至少 10 次修改
服务器在 60 秒之内,对数据库进行了至少 10000 次修改
2.2 AOF 方 方 式
AOF 持久化方式在 redis 中默认是关闭的,需要修改配置文件开启该方式。
AOF:把每条命令都写入文件,类似 mysql 的 binlog 日志
AOF 方式:是通过保存 Redis 服务器所执行的写命令来记录数据库状态的文件。
AOF 文件刷新的方式,有三种:
appendfsync always - 每提交一个修改命令都调用 fsync 刷新到 AOF 文件,非常非常
慢,但也非常安全
appendfsync everysec - 每秒钟都调用 fsync 刷新到 AOF 文件,很快,但可能会丢失
一秒以内的数据
appendfsync no - 依靠 OS 进行刷新,redis 不主动刷新 AOF,这样最快,但安全性就
差
默认并推荐每秒刷新,这样在速度和安全上都做到了兼顾
AOF 数据恢复方式
服务器在启动时,通过载入和执行 AOF 文件中保存的命令来还原服务器关闭之前的数
据库状态,具体过程:
载入 AOF 文件
创建模拟客户端
从 AOF 文件中读取一条命令
使用模拟客户端执行命令
循环读取并执行命令,直到全部完成
如果同时启用了 RDB 和 AOF 方式,AOF 优先,启动时只加载 AOF 文件恢复数据

五、 安装 Redis 集群

搭建redis集群

redis 集群时需要使用一个 ruby 的脚本来完成集群。

第一步 安装 ruby 环境

命令: yum install ruby

第二步 安装 ruby 的包管理器

命令:yum install rubygems

第三步 进入到 redis 的安装目录下的 src 目录下找到到 redis-trib.rb 这个文件 这是集群

时需要的脚本

第四步 这个脚本的执行需要依赖于一些其他的 ruby 包 所以我们还要下载一个

redis-3.0.0.gem

将这个文件上传到 linux 服务器中

第五步 安装这个 ruby 包

命令:gem install redis-3.0.0.gem

第六步 先启动 redis 的 6 个实例

先在 local 目录下创建一个目录名称为:redis-cluster

命令:mkdir redis-cluster

第七步 将安装好的 redis 下的 bin 目录拷贝到 redis-cluster 目录下 并起名为 redis01

命令:进入到 redis 目录下执行:cp -r bin ../redis-cluster/redis01

第九步 修改 redis.conf 配置文件

命令:vim redis.conf

修改端口:默认的为 6379 将六个 redis 实例的端口改成从 8001-8006 在配置文件

的 port 属性中。

(2)修改开启集群 在配置文件中搜索 cluster 找到后 将默认为注释的 cluster-enabled

yes 去掉注释

第十一步 把创建集群的 ruby 脚本复制到 redis-cluster 中

命令:[root@localhost src]# cp *.rb /usr/local/redis-cluster/

第十二步 创建一个能够批量启动的脚本程

命令:vim startall.sh

第十三步 在脚本文件中添加命令

命令:cd redis01

./redis.server redis.conf

cd ..

cd redis02

./redis.server redis.conf

cd ..

cd redis03

./redis.server redis.conf

cd ..

cd redis04

./redis.server redis.conf

cd ..

cd redis05

./redis.server redis.conf

cd ..

cd redis06

./redis.server redis.conf

cd ..

第十四步 将批量启动脚本设置为可执行权限

命令:chmod +x startall.sh

第十五步 执行这个批量启动的脚本

命令:[root@localhost redis-cluster]# ./startall.sh

第十六步 查看 redis 是否启动成功

命令:ps aux|grep redis

第十七步 创建集群

命 令 : ./redis-trib.rb create --replicas 1 192.168.142.4:8001 192.168.142.4:8002

192.168.142.4:8003 192.168.142.4:8004 192.168.142.4:8005 192.168.142.4:8006

测试 Redis 集群

测试 Redis 集群:可以连接集群中的任意一个节点进行测试 (注意一定要有-c 参数,

则能连上,但是无法操作 redis 集群)

81620330f1b6c3bb0d3a6e8674d45e78.png

命令:[root@localhost redis-cluster]# ./redis01/redis-cli -h 192.168.10.128 -p 7001 -c

关闭 Redis 集群

命令:bin/redis-cli -p 7001 shutdown

批量关闭的脚本

shutdownall.sh

redis01/redis-cli -h 192.168.142.4 -p 8001 shutdown
redis01/redis-cli -h 192.168.142.4 -p 8002 shutdown
redis01/redis-cli -h 192.168.142.4 -p 8003 shutdown
redis01/redis-cli -h 192.168.142.4 -p 8004 shutdown
redis01/redis-cli -h 192.168.142.4 -p 8005 shutdown
redis01/redis-cli -h 192.168.142.4 -p 8006 shutdown

赋予权限chmod +x shutdown.sh

或者使用端口关闭的方法

redis01/redis-cli -p 7001 shutdown

redis01/redis-cli -p 7002 shutdown

redis01/redis-cli -p 7003 shutdown

redis01/redis-cli -p 7004 shutdown

redis01/redis-cli -p 7005 shutdown

redis01/redis-cli -p 7006 shutdown

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值