redis学习笔记

简介: 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"
目录
相关文章
|
边缘计算 Kubernetes Devops
KubeSphere平台安装系列之二【Linux单节点部署KubeSphere】(2/3)
KubeSphere平台安装系列之二【Linux单节点部署KubeSphere】(2/3)
698 3
|
2月前
|
NoSQL 前端开发 Java
响应式编程的Java实践:Reactor与WebFlux的工程落地
响应式编程是近年来Java生态中最具话题性的技术方向之一。它声称能够以更少的资源处理更高的并发,但学习曲线陡峭,调试困难,概念抽象。那么,响应式编程到底解决了什么问题?它在什么场景下真正有价值?在Java生态中如何落地?
264 3
|
缓存 JavaScript 网络架构
[Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)
[Vue]学习笔记目录 【Vue2与Vue3完结】 (尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通)
|
6月前
|
SQL 存储 关系型数据库
MySQL 高频面试题
本课程深度解析阿里MySQL高频面试题,涵盖底层原理、索引优化、性能调优与故障排查四大核心模块。结合阿里实战场景,精讲MVCC、B+树、事务ACID、死锁处理、慢SQL定位、分库分表等关键技术点,提供可落地的优化方案与标准答案,助力掌握“原理+实战”双能力,精准应对高并发、大数据量下的数据库挑战,适合中高级开发者冲击大厂offer。
|
11月前
|
应用服务中间件 nginx Docker
静态资源管理:Nginx在Docker中的部署
部署Nginx到Docker中作为静态资源服务器是一种既简单又高效的方法,可以节省时间和资源,并能确保一致性和可扩展性。我们通过编写Dockerfile指定了基础镜像和所需指令,编写Nginx配置管理请求处理,构建自定义Docker镜像,并运行容器以启动服务。这一过程即符合开发规范,也保证了资源的高效管理和访问速度。
479 13
|
SQL 存储 运维
【赵渝强老师】达梦数据库的客户端工具
本文介绍了达梦数据库的多种工具及其使用方法,包括disql交互式查询工具、数据库配置助手DBCA、DM管理工具、DM服务查看器、DM控制台工具、DM数据迁移工具、DM性能监视工具以及DM审计分析工具。每种工具的功能和操作步骤均有详细说明,并配有相关图片和代码示例,帮助用户更好地理解和使用这些工具,提升数据库管理和维护效率。
1723 1
|
数据采集 缓存 监控
Zabbix性能调优三板斧
在“2024 Zabbix中国峰会”上,上海宏时数据系统有限公司的董玉凡分享了《Zabbix性能调优三板斧》。内容涵盖Zabbix性能瓶颈分析、优化核心原则及实际案例。通过配置优化、数据采集优化和架构扩展优化三大方面,结合自监控数据精准施策,显著提升大规模监控场景下的系统稳定性与效率。案例展示了6000+节点和5000+网络设备的成功优化实践。
663 0
|
Ubuntu Linux 网络安全
在Ubuntu上离线升级OpenSSH
本文介绍了在Ubuntu系统上离线升级OpenSSH的详细步骤,包括移除旧版本、解压新版本、编译安装、解决依赖问题、替换相关命令、重启SSHD服务以及验证升级结果。
3560 1
|
IDE 算法 开发工具
Scratch编程v3.29.1少儿编程工具
SCRATCH是一款由麻省理工学院(MIT)媒体实验室开发的图形化编程语言和集成开发环境(IDE)。它的目标是让编程变得有趣、直观且易学,尤其是针对儿童和青少年群体。通过SCRATCH,用户可以通过拖放代码块的方式来创建动画、故事、游戏等多媒体项目,无需深入了解复杂的编程语法和结构。
667 2
|
存储 算法 Java
超全面!阿里巴巴最新发布23年秋招200道Java面试题(含答案)
马上过34岁生日了,和大家聊聊最近的情况 半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人。 面试中总结了200道经典的Java面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了~ 因为篇幅原因,大部分的内容就不给大家一一展示了,需要获取的小伙伴可以直接点击此处取到! Java平台相关 1、JDK、JRE、JVM 分别是什么关系? 2、为什么 Java 被称作是“平台无关的编程语言”? 3、Java 和 C++ 的区别? 4、什么是字节码?采用字节码的最大好处是什么? 5、Java运行的过程? 6、
733 4

热门文章

最新文章