redis学习笔记

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis是一款由C语言编写的内存中的键值对数据库,包含多种数据结构如字符串、散列、列表、集合、有序集合等。它支持复制、LUA脚本、LRU策略、事务和持久化。Redis官网提供详细文档,可用于分布式缓存、防止缓存击穿、分布式锁、消息队列等场景。安装Redis 7.0.15版,需下载、配置环境变量、修改配置文件以设置守护进程、关闭保护模式和密码。Redis基础命令包括键操作如DEL、EXISTS、EXPIRE等,数据类型包括字符串和哈希等,如HSET用于设置哈希表字段值,HGET用于获取字段值。

redis 笔记

redis 概述

redis

redis是本身采用C语言编写。是一个基于内存的K-V(键值对)构成的数据库。而且内置很多数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets),带有范围查询的 有序集合(sorted sets)bitmapshyperloglogs地理空间(geospatial) 索引。 Redis 内置了 复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化

redis官方文档地址: redis 命令手册

redis-github地址: https://github.com/redis/redis


redis可以做什么?

  • 分布式缓存,挡在MySQL前的带刀护卫

  • 缓存雪崩,穿透,击穿

  • 内存存储和数据持久化

  • 分布式锁

  • 消息队列

  • 排行榜+点赞


redis环境配置

本次使用的redis版本是7.0.15,是最近的发行版本。在windows10下配置,zip安装。

redis-server下载地址:

Release Redis 7.0.15 for Windows · redis-windows/redis-windows · GitHub

配置步骤:

  • 先下载上述链接的redis版本

  • 配置环境变量

到windows10下搜索栏搜索环境变量就会出现一个选项:编辑系统环境变量
然后找到高级-环境变量-系统变量
找到path这个环境变量选项,在已有的的基础上点击新增。
填入你redis的安装目录
后续两次保存,最后退出即可完成
  • 修改redis配置文件

redis安装目录下,有一个redis.conf的配置文件。里面记录了很多redis启动时的默认配置,现在需要修改它正常启动服务。

  1. 守护进程

将daemonize设置的值设置为yes

  1. 关闭保护模式

将protece-mo设置为no,如果不关闭这个选项。其他机器无法访问这台机器上的redis服务

  1. 设置密码

在配置文件找到requirepass 这个选项,原本是被注释起来的。现在取消注释,后面改成你想设置的密码。

redis 基础命令

key常用命令

键(Key)命令

Redis 是 key-value 型数据库,键(Key)命令是 Redis 中经常使用的命令。常用的键命令如下所示:

命令 描述
DEL 用于删除 key
DUMP 序列化给定 key ,并返回被序列化的值
EXISTS 检查给定 key 是否存在
EXPIRE 为给定 key 设置过期时间
EXPIREAT 用于为 key 设置过期时间,接受的时间参数是 UNIX 时间戳
PEXPIRE 设置 key 的过期时间,以毫秒计
PEXPIREAT 设置 key 过期时间的时间戳(unix timestamp),以毫秒计
KEYS 查找所有符合给定模式的 key
MOVE 将当前数据库的 key 移动到给定的数据库中
PERSIST 移除 key 的过期时间,key 将持久保持
PTTL 以毫秒为单位返回 key 的剩余的过期时间
TTL 以秒为单位,返回给定 key 的剩余生存时间(
RANDOMKEY 从当前数据库中随机返回一个 key
RENAME 修改 key 的名称
RENAMENX 仅当 newkey 不存在时,将 key 改名为 newkey
TYPE 返回 key 所储存的值的类型

redis数据类型

介绍redis中各种数据类型的用法和注意事项

redis字符串命令

set key

设置单个键值对

set k1 v1

get key

获取对应健最新的值

get k1

MSET key vlaue

该命令用于同时设置多个键值

mget k1 name

getanger

获取指定范围内的值

getrange name 0 2

setrange

用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始

语法

redis 127.0.0.1:6379> SETRANGE KEY_NAME OFFSET VALUE

示例:

setrange name 6 "redis"

INCR key

对数字进行递增,但是key必须是数字

语法:

127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> INCR age
(integer) 21

getset

设置key的值,并返回key的旧值

127.0.0.1:6379> getset name python
"dockerredis"
127.0.0.1:6379> get name
"python"

HASH 哈希

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)

hset key field value

该命令创建一个哈希表并且指定其中一个字段的值

set person name laoyang
hset commit cnt 10
hget key filed value

返回该哈希表中指定字段的值

127.0.0.1:6379> hget person name
"laoyang"
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
29天前
|
存储 监控 NoSQL
redis 相关知识
redis 相关知识
20 1
|
6月前
|
存储 NoSQL 测试技术
【Redis】redis为什么快
【Redis】redis为什么快
|
运维 NoSQL Shell
redis(2)
Redis Cluster 是 redis的分布式解决方案,在3.0版本正式推出 当遇到单机、内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡目的。 Redis Cluster之前的分布式方案有两种: 1)客户端分区方案: 优点分区逻辑可控,缺点是需要自己处理数据路由,高可用和故障转移等。 2)代理方案: 优点是简化客户端分布式逻辑和升级维护便利,缺点加重架构部署和性能消耗。 官方提供的 Redis Cluster集群方案,很好的解决了集群方面的问题
|
存储 NoSQL Java
Redis3
Redis3
53 0
|
6月前
|
存储 SQL NoSQL
[Redis]——初识Redis
[Redis]——初识Redis
|
6月前
|
缓存 NoSQL 数据库
Redis的三剑客
Redis的三剑客
|
消息中间件 存储 负载均衡
|
NoSQL Redis 数据库
什么是Redis
Redis,即远程字典服务,是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型,Key-Value数据库。类似于map
62 0
|
存储 缓存 监控
|
NoSQL Redis