Redis知识汇总一(从0到1)

系列文章目录

从redis是什么如何安装到高级命令主从搭建、哨兵模式、分部、多级缓存、持久化缓存详细介绍,附带redis最新资源包和redis图形化管理界面的资源包

文章目录

目录

系列文章目录

一、redis介绍以及安装

二、redis基本命令

三、redis持久化存储

RDB持久化存储

AOF持久化存储

四、redis主从搭建以及哨兵模式

五、redis分片集群

插槽、集群伸缩、故障转移


一、什么是redis

redis跟mysql差不多都是一个数据库,只不过的是redis的数据是存储在内存当中,读写速度非常快,操作简单,redis是nosql数据库,即not only sql不仅仅是数据库,简而言之,redis是一个高性能、高并发的分布式数据库

如何安装

对于redis的简介我们可以做简单的了解,重点是怎么用,先从安装开始

我们可以在redis的官网安装最新版本的redis(如果不想去官方,也可在文章的最后的下载链接中下载,有redis的安装包以及redis图形化管理安装包)

下载好以后上传到我们的Linux系统当中

[root@giant-fox ~]# tar -zxf redis-7.0.4.tar.gz -C /usr/local/src/ #解压
[root@giant-fox ~]# cd /usr/local/src/

[root@giant-fox src]# yum install -y gcc #下载c语言的依赖包 redis是由C语言编写

[root@giant-fox redis-7.0.4]# cat README.md |grep install #阅读安装说明
installed):
In order to install Redis binaries into /usr/local/bin, just use:
    % make install
You can use `make PREFIX=/some/other/directory install` if you wish to use a
Make install will just install binaries in your system, but will not configure
needed if you just want to play a bit with Redis, but if you are installing
    % ./install_server.sh
_Note_: `install_server.sh` will not work on Mac OSX; it is built for Linux only.

[root@giant-fox redis-7.0.4]# make install 

[root@giant-fox redis-7.0.4]# cd utils

[root@giant-fox utils]# ./install_server.sh #如果这里报错了

把报错内容注释掉就行

#if [ "${_pid_1_exe##*/}" = systemd ]
#then
#       echo "This systems seems to use systemd."
#       echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
#       exit 1
#fi

下载好以后 可以通过redis-server redis.conf直接前台开始服务 (不方便,占用服务器前台)#基本不用

在redis.conf 中修改下面这些配置

在redis-7.0.4 目录下修改redis.conf文件(可用cp redis.conf redis.conf.bck 备份)

主要修改

  1. #bind 127.0.0.1 -::1  注释掉 增填bind 0.0.0.0 (指所有ip均可以访问)
  2. requirepass foobared 设置密码
  3. protect-mode no 修改保护
  4. daemonize yes 守护进程 指后台可以运行
  5. logfile “” 文件日志保存
  6. masterauth <master-password> 主节点的密码(主从数据库配置)

修改完毕后: redis-server redis.conf 启动即可

还有一种方法可以设置系统开启

[root@giant-fox redis-7.0.4]# cd /etc/systemd/system

[root@giant-fox system]# cat redis.service 
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-7.0.4/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@giant-fox system]# systemctl daemon-reload

即可用 systemctl start/stop/restart/enable/ redis

 

 二、redis的基本操作命令

安装完成后,可以用任何一种你喜欢的方式开启

redis的通用命令

KEYS 查看符合模板的所有KEY  不建议在生产环境设备上使用

DEL 删除一个指定的KEY

EXISTS 判断KEY是否存在

EXPIRE 给一个key设置存活时间

TTL 查看key的存活时间

# 通过help [command] 可以查看一个命令的具体用法

String类型的命令

SET 添加或修改已经存在的一个String类型的键值对

GET 获取key的value

MEST 批量添加多个key

MGET 获取多个value

INCR 让一个整型的KEY自增1

INCRBY 让一个key自增并指定步长 incrby num 2

INCRBYFLOAT float指定步长

SETNX 添加一个string类型的键值对

key的结构
Redis的key允许有多个单词形成层级结构,多个单词之间用'∵'隔开,格式如下:
项目名:业务名:类型:id
这个格式并非固定,也可以根据自己的需求来删除或添加词条。
如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储:
{ "id" : 1,"name" : "Jack","age": 21}
heima : product: 1
{ "id" : 1,"name" :"小米11", "price": 4999}
 

Hash常见命令

HSET key field value:添加或者修改hash类型key的field的值HGET key field:获取一个hash类型key的field的值

例如: HSET myhash giant “fox“

           HGET myhash giant

            即可获取 fox

HSET key field value:添加或者修改hash类型key的field的值HGET key field:获取一个hash类型key的field的值

HGETALL:获取一个hash类型的key中的所有的field和valueHKEYS:获取一个hash类型的key中的所有的field

例如:  HGETALL myhash

  输出  giant

             fox

HVALS:获取一个hash类型的key中的所有的valueHINCRBY:让一个hash类型key的字段值自增并指定步长

HSET key field value:添加或者修改hash类型key的field的值HGET key field:获取一个hash类型key的field的值

SET 类型的常见命令

SADD key member ... : 向set中添加一个或多个元素

SREM key member ...:移除set中的指定元素

SCARD key:返回set中元素的个数

SISMEMBER key member:判断一个元素是否存在于set中

SMEMBERS:获取set中的所有元素

SINTER key1 key2... :求key1与key2的交集

SDIFF key1 key2 ...:求key1与key2的差集

list常见命令

LPUSH key element ... :向列表左侧插入一个或多个元素

LPOP key:移除并返回列表左侧的第一个元素,没有则返回nil

RPUSH key element...:向列表右侧插入一个或多个元素

RPOP key:移除并返回列表右侧的第一个元素

LRANGE key star end:返回一段角标范围内的所有元素

BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil

SortedSet常见命令

 ZADD key score member:添加一个或多个元素到sorted set,如果已经存在则更新其score值

ZREM key member:删除sorted set中的一个指定元素

zSCORE key member:获取sorted set中的指定元素的score值

ZRANK key member:获取sorted set中的指定元素的排名

ZCARD key:获取sorted set中的元素个数

 zCOUNT key min max:统计score值在给定范围内的所有元素的个数

ZINCRBY key increment member: 让sorted set中的指定元素自增,步长为指定的increment值

ZRANGE key min max:按照score排序后,获取指定排名范围内的元素

ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素ZDIFF、ZINTER、ZUNION:求差集、交集、并集

三、REDIS的持久化存储

redis的存储分为 AOF和RDB两种模式

AOF持久化(全称Append Only File,aof文件类似log)

将数据存储到aof文件夹中 以命令方式存储  记录命令文件体积很大

AOF默认是关闭的

需要修改配置 将no改为yes

[root@giant-fox ~]# cat /tmp/7001/redis.conf |grep appendonly 
appendonly no
# For example, if appendfilename is set to appendonly.aof, the following file
# - appendonly.aof.1.base.rdb as a base file.
# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
# - appendonly.aof.manifest as a manifest file.
appendfilename "appendonly.aof"
appenddirname "appendonlydir" #aof的文件名称

appendfsync always|everysec|no 分别是每一次写命令立刻记录到aof文件中、写命令执行完先放入aof缓冲区,然后表示每隔一秒将缓冲区数据写到AOF文件中,是默认方案,第三种是由操作系统决定何时将缓冲区内容写回磁盘

redis-cli -p 6379

auth 123456

BGREWRITEAOF 压缩AOF的容量 使命令更简洁化

RDB持久化存储

RDB是定时对整个内存做个快照,但是数据的完整性不如AOF,宕机后的恢复速度很快,数据恢复优先级比较低,不如AOF,因为aof数据的完整性高,系统占用资源高,大量cpu和内存的消耗

如何开启rdb

[root@giant-fox ~]# cat /tmp/7001/redis.conf |grep save
# save <seconds> <changes> [<seconds> <changes> ...]
# Redis will save the DB if the given number of seconds elapsed and it
# save "" 这个是开启RDB模式

save 900 1 900秒内有一次key值的修改 即执行bgsave

save 60 10000 60秒内有10000次修改才执行bgsave

到此REDIS的介绍安装以及命令和存储方式介绍完毕 下一章继续介绍REDIS剩余部分的内容

REDIS安装包以及REDIS图形化管理的安装包链接:https://naicha6.lanzouv.com/b02ppus5g密码:fox 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值