redis安装和使用

redis=kv+cache+persistence

redis是什么

redis = remote dictionary server
开源免费 、C语言 、遵守BSD协议的高性能 key/value分布式内存数据库,基于内存运行,支持持久化。

特性

远程:分为客户端,服务端。可以分别部署在不同的机器上,通过自定义协议进行传输和交互的。平时说的 Redis 通常指的是 Redis 的服务端。

基于内存:所有数据结构存在内存中。所有操作非常高速。性能优越于硬盘存储的mysql,因为存在内存中,所有也比较吃内存。

非关系型数据库:关系型数据库在存储之前,必须要定义好所谓的数据字典,后续的存储数据按照存储字典来存储,而 Redis 就不需要

redis与其他key-value缓存产品相比特点
  • 支持数据持久化
  • 支持多种数据类型
  • 支持备份

应用场景

1.缓存:当系统的接口数据比较慢的时候,可以把系统数据接口的数据缓存起来,当下次取的时候,可以直接从缓存中取就可以了。
2.数据存储:redis 有两种非常完备的持久化机制【AOF 和 RDB】,可以定期将数据持久化硬盘中,保障数据的完整性,安全性。

作用:内存持久化、发布订阅消息系统、定时器计数器

为什么使用 redis

  • 性能
    在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应。

  • 并发
    在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用 redis 做一个缓冲操作,让请求先访问到 redis,而不是直接访问数据库。

单线程 redis 为什么这么快?

(一)纯内存操作
(二)单线程操作,避免了频繁的上下文切换
(三)采用了非阻塞 I/O 多路复用机制

Redis 安装

下载window
下载linux

redis安装和开启远程教程:
https://blog.csdn.net/weixin_43451430/article/details/115621335
https://blog.csdn.net/hewusheng10/article/details/113995671
访问:

redis-cli -h 192.168.***.*** -p 6379

操作redis数据库需要开启服务端,并且下载个Redis可视化工具,如 Redis Desktop Manager,教程https://www.w3cschool.cn/redis/redis-evz12p08.html
默认的端口号:6379
成功:
在这里插入图片描述

Redis 的五种数据类型

string

  • Redis 最基本的类型,一个 key 对应一个 value。
  • String 类型是二进制安全的。意味着 Redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。
  • 一个 Redis 中字符串 value 最多可以是 512M

List:

  • 单键多值
  • Redis 列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素导列表的头部(左边)或者尾部(右边)。
  • 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

Set:

  • Redis set 对外提供的功能与 list 类似是一个列表的功能,特殊之处在于 set 是可以自
    动排重的

Hash:

  • 一个键值对集合。
  • 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
  • 类似 Java 里面的 Map<String,Object>

Zset:

  • 有序集合 zset 与普通集合 set 非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score) ,这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了的。
  • 因为元素是有序的, 所以可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表。

使用场景:
在这里插入图片描述
在这里插入图片描述

常用命令

非数据类型常用命令

  1. 切换库
    a) select 0
  2. 启动服务器,用客户端访问
    a) ./redis-server redis.conf
    b) ./redis-cli
  3. 测试验证连接是否正常
    a) ping
  4. 查看当前库的所有键
    a) keys *
  5. 判断 key 是否存在
    a) exists
  6. 查看键的类型
    a) type
  7. 删除某个键
    a) del
  8. 设置 key 的过期时间单位为 秒
    a) expire
  9. 查看还有多少秒过期,-1 表示永不过期,-2 表示已过期
    a) ttl
  10. 查看当前数据库的 key 的数量
    a) dbsize
  11. 清空当前库
    a) flushdb
  12. 通杀全部库
    a) flushall

String 类型常用命令

1、 添加键值对
a) set
2、 查询对应键值
a) get
3、 将给定的 追加到原值的末尾
a) append
4、 获得值的长度
a) strlen
5、 只有在 key 不存在时设置 key 的值
a) setnx
6、 将 key 中储存的数字值增 1,只能对数字值操作,如果为空,新增值为 1
a) incr
7、 将 key 中储存的数字值减 1,只能对数字值操作,如果为空,新增值为-1
a) decr
8、 将 key 中储存的数字值增减。自定义步长。
a) incrby / decrby <步长>
9、 同时设置一个或多个 key-value 对
a) mset …
10、 同时获取一个或多个 value
a) mget …
11、 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
a) msetnx …
12、 获得值的范围
a) getrange <起始位置> <结束位置>
13、 用 覆写 所储存的字符串值,从<起始位置>开始。
a) setrange <起始位置>
14、 设置键值的同时,设置过期时间,单位秒。
a) setex <过期时间>
15、 以新换旧,设置了新值同时获得旧值
a) getset

参考:尚硅谷redis课程pdf资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值