记录Redis基础知识,主要包括Redis简单介绍,Redis在Linux系统中的安装,Redis各种数据类型的操作以及应用,Redis中数据有效时间设置
正文内容:
一、Redis是什么
Redis是非关系型数据库(数据与数据之间不存在关系),与之对应的还有关系型数据库MySQL(数据库以表为单位,数据库表与表之间存在某种关联关系)
笔者认为Redis是为了缓解关系型数据库频繁操作数据库(消耗计算机资源)而存在的缓存中间件
具有易扩展,高性能,灵活的数据模型特点
二、Redis的安装
使用命令gcc -v
检查 gcc 版本
Redis6 以上版本要求 gcc 必须在 5.3 以上
如果不能满足需求,升级 gcc,步骤如下:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
需要注意的是 scl 命令启用只是临时的,退出 shell 或重启就会恢复原系统 gcc 版本
如果要长期使用 gcc 9.3 的话执行下面命令 echo -e "\nsource /opt/rh/devtoolset-9/enable" >>/etc/profile
如果已经安装 gcc,版本满足要求,跳过上面升级步骤
如果没有安装 gcc,安装步骤:
dnf group install "Development Tools" dnf install man-page
使用命令cd redis-6.0.8
进入Redis源码目录
使用命令make
进行预编译
使用命令mkdir -p /usr/local/redis
创建文件
使用命令make install PREFIX=/usr/local/redis
安装到指定目录
使用命令cd /usr/local/redis/bin
进入安装文件 bin 目录
使用命令./redis-server
启动服务,之后看见如图所示则证明安装成功
此时按Ctrl+c
退出这个界面,配置redis设置
使用命令cp /usr/local/redis-6.0.8/redis.conf /usr/local/redis/bin/
从redis源码目录复制 redis.conf 到 redis 的安装目录
使用命令vim /usr/local/redis/bin/redis.conf
修改 redis.conf 文件
后台运行:daemonize no 改为 daemonize yes
设置密码:requirepass 你的密码
文件内查找:你搜索的内容 回车 n 下一个 N 上一个
注释绑定的 ip,默认只能本机访问,这样就可以远程访问
使用命令cd /usr/local/redis/bin/
进入到到 redis 的安装目录
使用命令./redis-server redis.conf
启动Redis
使用命令ps -ef | grep redis
查看 Redis 运行状态
使用命令./redis-cli
进入客户端模式
输入密码
auth 密码
测试
ping
退出客户端模式
exit
ctrl+c 退出客户端模式
三、Redis各种数据类型的应用
Redis里面数据存储是键值对类型,在键值对中的值位置处可以是String类型,hash类型,set类型,list类型,zset类型
- String类型的应用:计数器,web集群session共享
计数器:将数据设置为数字,然后配合Redis里面的操作命令即可实现计数器 计数器具体的实现如下图所示:
具体场景:使用Redis设置新闻阅读量
set news:8571
:设置新闻ID为8571的阅读量为0
incr news:8571
:新闻ID为8571的阅读量加1
get news:8571
:获取新闻ID为8571的阅读量
decr news:8571
:新闻ID为8571的阅读量减1
-
哈希类型:适合存储对象,对属性的修改 具体的哈希类型命令操作如下图所示:
hset user 1:name simon
:设置一个哈希类型数据user,并添加user的属性1:name值为simonhget user 1:name
:获取哈希对象user的1:name属性值hmset user 2:name jack 2:age 22 1:age 22
:设置哈希对象user的多个属性以及属性值hgetall user
:获取哈希对象user的所有属性以及属性值 -
list类型:可以实现队列和栈数据结构
lpush news 20
:在整个数据列表的最左边添加news,值是20rpush news 22
:在整个数据列表的最右边添加news,值是22lrange news 0 5
:查看下标在0到5的列表数据lpop news
:从整个数据列表的最左边删除一个数据rpop news
:从整个数据列表的最右边删除一个数据 -
set类型:
sadd name simon
:添加name对象,其中name对象有个成员simonsrem name jack
:删除name对象中成员jackscard name
:查看name对象的成员数量smembers name
:查看name对象的所有成员值 -
zset类型:在set数据类型基础上可以根据添加的数值进行排序
zadd newsSum 10 simon
:设置newsSum对象的排序值是10,成员值是simon,在这里,Redis会根据这个排序值进行数据升序排序zrem newsSum 1 5
:删除newsSum中成员值是1和5的成员zscore newsSum simon
:查看simon的排序值zincrby newsSum 10 simon
:吧simon的排序值增加10zrange newsSum 0 5
:查看newsSum中下标在0到5的成员 -
设置key的过期时间,具体操作如图所示:
expire name 100
:设置name的过期时间是100秒ttl name
:查看name的过期时间,单位是秒pttl name
:查看name的过期时间,单位是毫秒