Redis缓存--入门

本文详细介绍了Redis缓存机制,包括其工作原理、数据结构、内存管理和高可用性。Redis是一个高性能的内存数据结构存储系统,常用于数据库缓存和消息中间件。文章还涵盖了Redis的安装步骤、配置优化以及常用命令,如增删查改、过期策略等,并提及了Redis的Hash、List和事务等高级特性。
摘要由CSDN通过智能技术生成

Redis缓存机制

一、缓存机制说明

1.原理图

redis缓存原理图

2.缓存机制原理说明

缓存中的数据,一定是数据库中的数据,使用缓存主要的目的就是降低用户访问物理设备的频次。如果数据库记录更新,则缓存应该同步更新。
(1)缓存的数据结构是以K-V结构进行数据保存。
(2)开发语言是C语言程序。
(3)缓存数据的运行环境在内存中,断电即擦除。所以要考虑将内存数据进行持久化操作。
(4)如果不停的添加缓存的记录,肯定会造成内存溢出。所以要考虑定期优化缓存机制。
①LRU算法;②LFU算法;③Random;④TTL
(5)缓存也需要实现高可用机制。所以要考虑搭建缓存集群。

3.Redis介绍

3.1官网介绍

URL地址: http://www.redis.cn
Redis 是一个开源(BSD许可)的 内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
效率: 读: 11.2万次/秒 写: 8.6万次/秒 平均:10万次/秒
口诀: 1-5-8

3.2知识扩展

(1)数据库
①关系型数据库:mysql数据库/oracle数据库 2维表 行/列
②非关系型数据库:mongodb/hbase/Redis 1维表
(2)中间件:
50万次/秒 吞吐量
在这里插入图片描述

4Redis安装

4.1上传安装包

通过MobaXterm上传文件到linux系统的 /usr/local/src/目录下
在这里插入图片描述

4.2解压Redis

说明:
解压命令:tar -xvf redis-5.0.4.tar.gz
解压完成之后删除安装包/修改文件名称,删除文件命令为:rm -f 文件名;修改文件名称命令为:mv 文件原名称 文件现名称
在这里插入图片描述

4.3安装Redis

说明:在redis根目录中执行如下命令
命令1:make 对文件进行编译
命令2:make install 安装文件
在这里插入图片描述

4.4进制换算

1k => 1000 bytes
1kb => 1024 bytes
1m => 1000000 bytes
1mb => 10241024 bytes
1g => 1000000000 bytes
1gb => 10241024*1024 bytes

4.5修改Redis配置文件

redis.conf文件是redis的配置文件,通过修改配置文件来更改redis的状态。
(1)修改ip绑定
注释掉bind 127.0.0.1,意味着解除本机绑定,外界ip可以访问
在这里插入图片描述
(2)关闭保护模式
protected-mode no为关闭保护模式,相当于关闭管理员模式
在这里插入图片描述
(3)开启后端运行
命令:daemonize yes
redis.conf配置文件中daemonize守护线程,默认是NO。daemonize是用来指定redis是否要用守护线程的方式启动。

daemonize:yes:
redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
daemonize:no:
当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。
在这里插入图片描述

4.6服务器命令

①启动redis redis-server redis.conf
②进入客户端 redis-cli -p 6379 exit 退出|quit|ctrl+c
③关闭redis redis-cli -p 6379 shutdown

4.7客户端命令 redis命令

String类型

命令说明案例
set添加key-valueset username admin
strlen根据key获取值的长度strlen key
exists判断key是否存在exists name
返回1存在 0不存在
del删除redis中的keydel key
Keys用于查询符合条件的keykeys * 查询redis中全部的key
keys n?me 使用占位符获取数据
keys nam* 获取nam开头的数据
mset赋值多个key-valuemset key1 value1 key2 value2 key3 value3
mget获取多个key的值mget key1 key2
append对某个key的值进行追加append key value
type检查某个key的类型type key
select切换redis数据库select 0-15 redis中共有16个数据库
flushdb清空单个数据库flushdb
flushall清空全部数据库flushall
incr自动加1incr key
decr自动减1decr key
incrby指定数值添加incrby 10
decrby指定数值减decrby 10
expire指定key的生效时间 单位秒expire key 20
key20秒后失效
pexpire指定key的失效时间
单位毫秒
pexpire key 2000
key 2000毫秒后失效
ttl检查key的剩余存活时间ttl key
-2数据不存在
-1该数据永不超时
persist撤销key的失效时间persist key

另外Redis命令还包含Hash类型命令、List类型命令、以及事物命令。
Hash类型命令:
说明:可以用散列类型保存对象和属性值
例子:User对象{id:2,name:小明,age:19}

List类型命令:
说明:Redis中的List集合是双端循环列表,分别可以从左右两个方向插入数据.
List集合可以当做队列使用,也可以当做栈使用
队列:存入数据的方向和获取数据的方向相反
栈:存入数据的方向和获取数据的方向相同

Redis事物命令:
说明:redis中操作可以添加事务的支持.一项任务可以由多个redis命令完成,如果有一个命令失败导致入库失败时.需要实现事务回滚.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值