Redis---初识redis

article/2025/11/2 9:04:42

一.认识Redis

Redis诞生于2009年,是一个基于内存的键值型NoSQL数据库

特征:
1.键值型,value支持多种不同数据结构,功能丰富

2.单线程,每个命令具有原子性

3.低延迟,速度快(基于内存,IO多路复用,良好的编码)

4.支持数据持久化

5.支持主从集群,分片集群

6.支持多语言客户端

二.最最最基本的命令

1.使用redis命令

(1)redis-cli -h ip地址 -p 端口 -a 密码

(2)redis-cli -h ip地址 -p 端口

auth 密码

2.添加&获取

Set key value

Get key

3.切换库

Select 几号库

三.常见的命令

1.Redis数据结构介绍

Redis 是一个key-value的数据库,key一般是Stirng类型,不过value的类型多种多样

2.redis通用命令

通用命令是部分数据类型的,都可以使用的指令,常见的有:

Help [命令] 查看命令的具体用法

Keys:查看符合模板的所有可以  keys * 查看所有的key  key a* 查看a开头的key

Del:删除一个指定的key

Exists:判断 key 是否存在

Expire 给一个key 设置有效期,有效期到期该key会被自动删除

Ttl:查看一个key剩余有效期

3.String类型

String类型,也就是字符串类型,是Redis中最简单的存储存储类型

其value是字符串,不过根据字符串的格式不同又可以分为3类

Sting:普通字符串

Int:整数类型,可以做自增,自减的操作

Float:浮点类型可以做自增,自减的操作

不管是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同,字符串类型的最大空间不能超过512M

String常见的命令有:

(1) set:添加或者修改已经存在的一个String类型的键值对 例如:set key value

(2)Get:根据key获取String类型的value     例如: get key

(3)Mset:批量添加多个Sting 类型的键值对   例如 mset key1 value1 key2 value2

(4)Mget:根据多个key获取多个Sting类型的value  例如 mget key1 key2 ...

(5)Incr 让一个整形的key自增1   incr key

(6)Incrby 让一个整形的key自增并指定步长    例如: incrby key 步长(负数就是减)

(7)Ubcrbyfloat: 让一个浮点类型的数字自增指定步长 注意:浮点只能指定

(8)Setnx: 添加一个String类型的键值对,前提是这个key不存在,否则不执行 (其实就是不能覆盖的意思) 例如 setnx key value

(9)Setex:添加一个Sting类型的键值对,并且指定有效期  例如 setex key时间(单位:s) value

4.Hash类型

Hash类型,也叫散列,其value是一个无序字典,类似于java中HashMap结构

String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便:

Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD:

Hash的常见命令有:

  1. Hset:添加或者修改hash类型key的field的值 例如:  hset  key filed value
  2. Hget:获取一个hash类型key的field的值   例如: hget key filed
  3. Hmset:批量添加多个hash类型key的field的值 例如: hmset key filed1 value1 filed2  value2.............
  4. Hmget:批量获取多个hash类型key的field的值 例如:hmget key  filed1 filed2
  5. Hgetall:获取一个hash类型的key中所有的field和value 例如: hgetall key
  6. Hkeys:获取一个hash类型的key中所有的field 例如 hkeys key
  7. Hvals:获取一个hash类型的key中所有的value 例如 hvals key
  8. Hincrby:让一个hash类型key的字段值自增并指定步长 例如: hincrby key filed 2(步长)
  9. Hsetnx:添加一个hash类型key的field值,前提是这个field不存在,否则不执行,相当于就是不能覆盖值

5.List类型

Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构,既可以支持正向检索和也可以支持反向检索

特征也与LinkedList类似: 有序   元素可以重复  插入和删除快  查询速度一般

List的常见命令有:

  1. Lpush:向列表左侧插入一个或多个元素  例如 lpush key value1 value2...
  2. Lpop:移除并返回列表左侧的第一个元素,没有则返回nil 例如 lpop key
  3. Rpush:向列表右侧插入一个或多个元素  例如 rpush key value1 value2...
  4. Rpop:移除并返回列表右侧的第一个元素,没有则返回nil 例如 rpop key
  5. Lrange key star end :返回一段角标范围内的所有元素 例如: lrange key 1 4
  6. Blpop和brpop:与lpop和rpop类似,只不过在没有元素时等待指定元素时间,而不是直接返回nil 例如: blpop key 100(单位:s)

小思考:

6.set类型:

Redis的set结构与java中的HashSet类似,可以看做是一个value为null的HashMap,因为也是一个hash表,因此具备与hashSet类似的特征: 无序  元素不可重复  查找快   支持交集,并集,差集等功能

常见命令:

  1. Sadd:向set中添加一个或多个元素 例如 sadd key value1 value2
  2. Srem:移除set中指定的元素 例如:srem key value
  3. Scard:返回set中元素的个数 例如 :scard key
  4. Sismember :判断一个元素是否存在于set中 例如: sismember key value
  5. Smembers:获取set中的所有元素   例如 smembers key
  6. Sinter: 求key1与key2的交集 例如: sinter key1 key2
  7. Sdiff: 求key1与key2的差集 例如: sdiff key1 key2
  8. Sunion: 求key1与key2的并集 例如: sunion key1 key2 (因为是set所以合并后相同的元素只会出现一次)

7.SortedSet

Redis的SortedSet是一个可排序的set集合,与java中的TreeSet有些类似.但底层数据结构却差别很大,SortedSet中的每个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加hash表

SortedSet具备下列特性: 可排序,元素不重复,查询不重复

常见命令:

  1. zadd:添加一个或多个元素到sorted set,如果已经存在则更新其score值 例如:zadd key1  85(分数) value1   90(分数) value2 ........
  2. Zrem:删除sorted set中的一个指定元素  例如: zrem key value
  3. Zscore:获取sorted set中指定元素的score值   例如:
  4. Zrank:获取sorted set中指定元素的排名    例如:zrank key value
  5. Zcard:获取sorted set中元素个数          例如: zcard key
  6. Zcount:统计score值在给定范围内的所有元素个数    例如 zcount key 0(最小值) 80(最大值)
  7. Zincrby:让sorted set中的指定元素自增,步长为指定的increment值  例如:zincrby key 2(步长) value
  8. Zrange:按照score排序后,获取指定排名范围内的元素   例如: zrange key 0(min) 2(max)
  9. Zrangebyscore:按照socre排血后,获取指定score范围内的元素 例如:zrangebyscore  key 0(最小值) 80(最大值)
  10. Zdiff,zinter,zunion:求差集,交集,并集  例如:zinter key1 key2

注意:所有的排名默认都是升序的,如果要降序则在命令Z后面添加rev即可

 


http://chatgpt.dhexx.cn/article/F7WKvQuB.shtml

相关文章

Redis学习笔记

感谢尚硅谷 视频地址:【尚硅谷】Redis 6 入门到精通 超详细 教程_哔哩哔哩_bilibili 一、Redis介绍 Redis 是一个开源的 key-value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string(字符串)、list(链表)、se…

学习Redis的一本好书: Redis Essentials

Redis key-value内存数据库的典型代表,为了了解Redis以及和其它内存数据库进行比较,决定找一本书系统的看一下。 在Amazon上考察了一下,决定就从Redis Essentials这本书入手。 接下来,我会逐章阅读,然后每章写一篇…

学了这篇redis从入门到精通,redis笔记全收录,必须收藏

大家好,给大家先做个自我介绍 我是码上代码,大家可以叫我码哥 我也是一个普通本科毕业的最普通学生,我相信大部分程序员或者想从事程序员行业的都是普通家庭的孩子,所以我也是靠自己的努力,从毕业入职到一家传统企业&a…

Redis详细教程

框架高级课程系列之Redis6 1 NoSQL数据库简介 1.1 技术发展 技术的分类1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN2、解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis3、解决性能的问题:NoSQL…

Redis数据库系列(一)、Redis 入门

第一章、Redis 入门 1.1、Redis简介 问题现象 海量用户高并发(无法同时处理海量请求) 罪魁祸首——关系型数据库 性能瓶颈:磁盘IO性能低下扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群 解决思路…

如何学习Redis

掌握数据结构和缓存的基本使用方法 要想会用一种系统,我们首先要会一些基本操作。我们平时在开发业务系统时,或多或少地会把 Redis 当作数据库或缓存使用。Redis 也提供了非常丰富的数据结构,这也给我们的开发提供了极大的便利。 所以&…

Redis数据库✧入门篇

Redis数据库(入门篇) Redis数据库:非关系型数据库,即NoSql数据库,基于内存存储系统(内存磁盘),其中有常用的五个数据类型:String,Hash(键值对集合…

详细Redis入门教程

目录 1 Redis的前世今生 1.1 简介 1.2 应用场景 2 Redis下载及安装 2.1 下载及安装 3 Redis使用 3.1 数据类型 3.2 持久化 3.3 事务 3.4 脚本 语法 4 Redis集群 4.1 主从模式 4.2 Sentinel模式 1.哨兵模式集群架构 2.哨兵模式作用 3.哨兵模式工作过程 4.3 Cl…

Redis详解

转载:Redis 详解_罗志宏的博客-CSDN博客_redis详解 1. 什么是 Redis   Redis 是一个基于内存的高性能 key-value 数据库。是完全开源免费的,用C语言编写的,遵守BSD协议。 Redis 特点: Redis 是基于内存操作的,吞吐量…

Redis入门一:Redis实战读书笔记

Redis提供5种不同类型的数据结构,并存储键与5种不同类型的值之间的映射,各式各样的问题都可以自然地映射到这些数据结构上。通过复制、持久化和客户端分片等特性,可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展…

Redis数据库介绍

1 Redis简介 Redis,全称远程字典服务(REmote DIctionary Server),是一个开源、基于内存、高性能、可数据持久化的key-value存储系统,遵守BSD协议,可用作数据库、缓存和消息中间件。 在Redis中文官网上是这…

redis详解(全)

学前小故事 数据库和缓存保证一致性小故事 windows && linux 安装redis redis 持久化 redis API 学前小故事 [我是redis] 你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。 说起我的诞生,跟关系数据库MySQL还挺有渊…

Redis 详解

文章目录 Redisredis 简介1. Redis 中的事务1.1 什么是事务?1.2 Redis 中的事务是怎么实现的?1.3 Redis 事务为什么不支持回滚?1.3.1 语法错误情况下的事务回滚状态1.3.2 类型错误情况下的事务回滚状态1.3.3 Redis事务不回滚总结 2. Redis 中…

Redis该怎么学?其实很简单,这份学习路线+资料+书单我全部贡献出来了!

前言 这绝对不是一篇水文,进来的兄弟们千万不要白嫖,真香警告⚠️。(点赞!!!) 这篇文章很早前就打算写了,特地留到现在是因为我想把Redis系列的文章全部更完,能让需要的…

Redis入门官方文档

Redis资料 Redis官网:http://redis.io/ Redis官方文档:http://redis.io/documentation Redis教程:http://www.w3cschool.cn/redis/redis-intro.html Redis下载:http://redis.io/download redis英文文档 https://redis.io/topics/data-types redis中文文档 http://www.red…

Redis内存数据库必读的4本书

Redis从一个不为人熟知、只有少量应用的崭新数据库,逐渐变成了内存数据库领域的事实标准。时至今日,经过大量的实践应用,Redis简洁高效、安全稳定的特性已经深入人心。 无论是国内还是国外,从五百强公司到小型初创公司都在使用Re…

【好书推荐】Redis入门必备 | 《Redis实战》

一、Redis入门必备 你好,我是小雨青年,一名程序员。 今天为你推荐的书籍是《Redis实战》。 Redis作为一个内存数据库服务器,本书提供了大量讲解和用例。 本书的大部分用例是用Python编写的,希望你有一些Python语言基础。 本书…

Day768.大佬推荐的经典的Redis学习资料 -Redis 核心技术与实战

大佬推荐的经典的Redis学习资料 Hi,我是阿昌,今天学习记录的是关于经典的Redis学习资料。 一、经典书籍 在学习 Redis 时,最常见的需求有三个方面。 日常使用操作:比如常见命令和配置,集群搭建等;关键技…

qt QSettings

qt QSettings 用法总结 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位置,一些别的设置,还有一个经常用的,就是recent files,等等这些都可以通过Qsettings来实现。 …