redis学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
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
目录
相关文章
|
1月前
|
存储 NoSQL 应用服务中间件
Redis 学习笔记
本文详细介绍了Redis的基本概念、特性、应用场景,并提供了在Centos下安装Redis5的步骤,以及如何使用Redis客户端和命令进行数据类型操作和管理。
45 2
|
3月前
|
存储 NoSQL Redis
Redis学习笔记
这篇文章是关于Redis的学习笔记,介绍了Redis的基本概念、数据结构、持久化方式以及与其他数据库的比较,并提供了Redis的官网地址和其在数据库领域的应用场景。
|
NoSQL Redis
redis学习笔记(五)
redis学习笔记(五)
|
NoSQL Java Redis
redis学习笔记(二)
redis学习笔记(二)
|
NoSQL Redis Python
redis学习笔记(九)
redis学习笔记(九)
|
NoSQL Java Redis
redis学习笔记(八)
redis学习笔记(八)
|
NoSQL Redis 数据库
redis学习笔记(三)
redis学习笔记(三)
|
NoSQL Redis 索引
redis学习笔记(四)
redis学习笔记(四)
|
SQL NoSQL 关系型数据库
redis学习笔记(一)
redis学习笔记(一)
|
NoSQL Redis
redis学习笔记(七)
redis学习笔记(七)