系列文章目录
从redis是什么如何安装到高级命令主从搭建、哨兵模式、分部、多级缓存、持久化缓存详细介绍,附带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 备份)
主要修改
- #bind 127.0.0.1 -::1 注释掉 增填bind 0.0.0.0 (指所有ip均可以访问)
- requirepass foobared 设置密码
- protect-mode no 修改保护
- daemonize yes 守护进程 指后台可以运行
- logfile “” 文件日志保存
- 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