当前位置: 首页 > news >正文

redis入门之redis数据库的基础操作(内含常见面试题)

目录

一、概述

二、字符串操作命令

1、操作

2、示例代码

三、哈希操作命令

1、操作

2、示例代码

四、列表操作命令

1、操作

2、示例代码

五、集合操作命令

1、操作

2、示例代码

六、有序集合操作命令

1、操作

2、示例代码

七、通用命令

1、操作

2、示例代码

八、常见redis面试题

1、Redis的数据持久化策略有哪些 ?

2、Redis集群有哪些方案, 知道嘛 ?


一、概述

        Redis 是一个开源的内存数据结构存储系统,支持多种数据类型,可用于缓存、消息队列、排行榜等场景。它具有高性能、丰富的命令集和灵活的数据结构。

二、字符串操作命令

1、操作

  • SET:设置键的值。
  • GET:获取键的值。
  • INCR/INCRBY:自增操作,可以指定增量。
  • DECR/DECRBY:自减操作,可以指定减量。

2、示例代码

   SET mystring "Hello, Redis!"GET mystringINCR mycounterINCRBY mycounter 5DECR mycounterDECRBY mycounter 3

三、哈希操作命令

1、操作

  • HSET:设置哈希表中的字段值。
  • HGET:获取哈希表中指定字段的值。
  • HDEL:删除哈希表中的一个或多个字段。
  • HKEYS:获取哈希表的所有键。
  • HVALS:获取哈希表的所有值。
  • HGETALL:获取哈希表的所有键值对。

2、示例代码

   HSET myhash field1 "value1" field2 "value2"HGET myhash field1HDEL myhash field1HKEYS myhashHVALS myhashHGETALL myhash

四、列表操作命令

1、操作

  • LPUSH/RPUSH:从列表左侧或右侧插入一个或多个元素。
  • LPOP/RPOP:从列表左侧或右侧弹出一个元素。
  • LRANGE:获取列表指定范围内的元素。

2、示例代码

   LPUSH mylist "element1" "element2"RPUSH mylist "element3"LPOP mylistRPOP mylistLRANGE mylist 0 -1

五、集合操作命令

1、操作

  • SADD:向集合中添加一个或多个元素。
  • SREM:从集合中删除一个或多个元素。
  • SMEMBERS:获取集合中的所有元素。
  • SISMEMBER:判断一个元素是否在集合中。

2、示例代码

   SADD myset "element1" "element2" "element3"SREM myset "element2"SMEMBERS mysetSISMEMBER myset "element1"

六、有序集合操作命令

1、操作

  • ZADD:向有序集合中添加一个或多个成员,或者更新已存在成员的分数。
  • ZREM:从有序集合中删除一个或多个成员。
  • ZRANGE/ZREVRANGE:按分数从小到大或从大到小获取指定范围内的成员。
  • ZSCORE:获取成员的分数。

2、示例代码

   ZADD myzset 10 "member1" 20 "member2"ZREM myzset "member1"ZRANGE myzset 0 -1ZREVRANGE myzset 0 -1ZSCORE myzset "member2"

七、通用命令

1、操作

  • EXISTS:检查给定的键是否存在。
  • DEL:删除指定的键。
  • TYPE:返回键对应的值的类型。

2、示例代码

   EXISTS mykeyDEL mykeyTYPE myhash

八、常见redis面试题

1、Redis的数据持久化策略有哪些 ?

RDB:

定期更新,定期将Redis中的数据生成的快照同步到磁盘等介质上,磁盘上保存的就是Redis的内存快照

优点:数据文件的大小相比于aop较小,使用rdb进行数据恢复速度较快

缺点:比较耗时,存在丢失数据的风险

AOF:

将Redis所执行过的所有指令都记录下来,在下次Redis重启时,只需要执行指令就可以了

优点:数据丢失的风险大大降低了

缺点:数据文件的大小相比于rdb较大,使用aop文件进行数据恢复的时候速度较慢

2、Redis集群有哪些方案, 知道嘛 ?

1、主从复制

  • 保证高可用性

  • 实现故障转移需要手动实现

  • 无法实现海量数据存储

2、哨兵模式

  • 保证高可用性

  • 可以实现自动化的故障转移

  • 无法实现海量数据存储

3、Redis分片集群

  • 保证高可用性

  • 可以实现自动化的故障转移

  • 可以实现海量数据存储

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux学习-模拟容器网络
  • 408:强化笔记|王道|DS|OS|CO|计网
  • qtdraw-使用qt绘图之开源源码学习
  • 举债豪赌,光正眼科深陷“资本迷局”
  • zookeeper是啥?在kafka中有什么作用
  • OpenGL函数之wglCreateContext
  • 在 csv 上增加计算列
  • 牛客小白月赛100(下)
  • Linux 8250串口控制器
  • 每日一练 | 根据优先级信息划分业务类型
  • IP学习——Fiveday
  • 十二、新版UI
  • 斯坦福大学论文润色chat-gpt指令
  • 前端框架大观:探索现代Web开发的基石
  • 走近张大鹏教授:哈工大走出的中国第一位人工智能博士
  • 11111111
  • angular2 简述
  • bootstrap创建登录注册页面
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ES6语法详解(一)
  • Java深入 - 深入理解Java集合
  • Java新版本的开发已正式进入轨道,版本号18.3
  • jdbc就是这么简单
  • leetcode46 Permutation 排列组合
  • LintCode 31. partitionArray 数组划分
  • PHP那些事儿
  • webpack4 一点通
  • windows下如何用phpstorm同步测试服务器
  • 大主子表关联的性能优化方法
  • 前端工程化(Gulp、Webpack)-webpack
  • 前端面试总结(at, md)
  • 深入浏览器事件循环的本质
  • 使用parted解决大于2T的磁盘分区
  • 微服务框架lagom
  • 最近的计划
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 数据可视化之下发图实践
  • 数据库巡检项
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • #LLM入门|Prompt#3.3_存储_Memory
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (16)Reactor的测试——响应式Spring的道法术器
  • (7)摄像机和云台
  • (C)一些题4
  • (C语言)fread与fwrite详解
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (笔试题)合法字符串
  • (二)fiber的基本认识
  • (二)原生js案例之数码时钟计时
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (转)ObjectiveC 深浅拷贝学习
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core使用ef 6