Redis初识

目录

前言

一、Redis是什么?

二、下载与安装

1.下载

2.安装

3.启动Redis

三、Redis操作

3.1基本操作

3.2五种常用数据类型

3.2.1.string

基础命令

数值型数据

[3.2.2 Hash](#3.2.2 Hash)

基础命令

[3.2.3 List](#3.2.3 List)

基本操作

[3.2.4 Set](#3.2.4 Set)

基本使用

[3.2.5 sorted_set](#3.2.5 sorted_set)

基础操作

总结

前言

由于关系型数据库本身存在性能瓶颈和扩展困难的问题,导致系统在面对高并发访问时越来越力不从心。这个时候,出现了一种全新的数据库设计理念,也就是使用非关系型数据库,仅存储数据,不存储关系。下文将详细介绍一种非关系型数据库:Redis

一、Redis是什么?

Redis(REmote DIctionary Server)是一款用C语言开发的一个开源高性能键值对(key-value)数据库。该数据库内部采用单线程机制进行工作且在该中线程机制下依然能保持良好的性能,官方提供测试数据表示50个并发下,执行100000 个请求,读的速度是110000 次/s,写的速度是 81000次/s。

二、下载与安装

1.下载

Linux 版 (适用于企业级开发)

  • Redis 高级开始使用
  • 以4.0 版本作为主版本

Windows 版本 (适合零基础学习)

2.安装

Redis压缩文件夹解压即安装

3.启动Redis

服务器启动

**方式1:**双击redis-server.exe

**方式2:**指令redis-server.exe redis.windows.con

客户端连接

三、Redis操作

3.1基本操作

添加数据

命令:set key value

例如:set person teacher

查询信息

命令:get key

清空屏幕

命令:clear

帮助

命令:help 命令名称

退出客户端命令行

命令:quit exit

3.2五种常用数据类型

|------------|-------------|
| string | String |
| hash | HashMap |
| list | LinkedList |
| set | HashSet |
| sorted_set | TreeSetuiuu |

3.2.1.string

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
  • 存储数据的格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用

基础命令

set key value===>添加修改数据

get key===>获取

del key ===>删除

mset key value key value...===>批量添加

mget key key key...===>批量获取

strlen key===>获取数据长度

getrange key 位置 位置===>获取指定key的位置数据

setrange key index value===>修改部分值

getset key value===>修改值,并返回原数据

数值型数据

如果想要利用decrby给一个正值,只需要给一个负的value即可

具有生命周期的数据

setex key seconds value===>设置键的过期时间

ttl key ===>查看key的剩余时间

如果某个key已经被实例化出来,这个时候要设置过期时间,可以使用EXPIRE key seconds命令

3.2.2 Hash

  • 存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息
  • 存储结构:一个存储空间保存多个键值对数据
  • hash类型:底层使用哈希表结构实现数据存储

基础命令

添加/修改数据

**格式:**hset key field value

获取数据

**格式:**hget key field

**格式:**hgetall key

添加/修改多个数据

**格式:**hmset key field1 value1 field2 value2 ...

获取多个数据

**格式:**hmget key field1 field2 ...

获取哈希表中所有的字段名或字段值

**格式:**hkeys key

**格式:**hvals key

获取哈希表中字段的数量

**格式:**hlen key

获取哈希表中是否存在指定的字段

**格式:**hexists key field

设置指定字段的数值数据增加指定范围的值

**格式:**hincrby key field increment

**格式:**hincrbyfloat key field increment

注意事项:

1.hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取 到,对应的值为(nil)

2.每个 hash 可以存储 2^32^-1个键值对

3.hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了 存储大量对象而设计的,因此不可滥用,更不可以将hash作为对象列表使用 4.hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就很会低,有可能成为数 据访问瓶颈

3.2.3 List

  • 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
  • 存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
  • list类型:保存多个数据,底层使用双向链表存储结构实现

基本操作

添加/修改数据

lpush key value1 [value2] ......

rpush key value1 [value2] ......

获取数据

lrange key start stop

lindex key index

llen key

获取并移除数据

lpop key rpop key

更新操作

lset key 下标 新数据

作用:lset将列表中指定下标的值替换为另外一个值,

如果不存在列表我们去更新就会报错

将某个具体的value插入到列中的某个元素的前面或者后面!

LINSERT mylist before "world" "other"

LINSERT mylist after "world" "other"

注意事项

1.list中保存的数据都是string类型的,数据总容量是有限的,最多2^32^-1个元素 (4294967295)

2.list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出 栈操作

3.获取全部数据操作结束索引设置为-1

4.list可以对数据进行分页操作,通常第一页的信息来自于list,第2页及更多的信息通过数据库的形式加 载

3.2.4 Set

  • 存储需求:存储大量的数据,在查询方面提供更高的效率
  • 存储结构:能够保存大量的数据,高效的内部存储机制,便于查询
  • set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的

基本使用

添加数据

sadd key member1 [member2]

获取全部数据

smembers key

删除数据

srem key member1 [member2]

获取集合数据总量

scard key

判断集合中是否包含指定数据

sismember key member

3.2.5 sorted_set

基础操作

添加数据

zadd key score1 member1 [score2 member2]

获取全部数据

zrange key start(开始索引) stop(结束索引) [WITHSCORES]

注意:[WITHSCORES]表示 除了数据还 可以显示分值

反转

zrevrange key start stop [WITHSCORES]

删除数据

zrem key member [member ...]

获取集合数据总量

zcard key

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Redist的使用,包括Redis下载安装、几种数据类型,以及指令操作方式,感谢收看,哈哈哈哈哈。

相关推荐
weixin_4624284711 分钟前
使用 Caffeine 缓存并在业务方法上通过注解实现每3到5秒更新缓存
java·缓存
杨充20 分钟前
13.观察者模式设计思想
java·redis·观察者模式
喵叔哟31 分钟前
重构代码之移动字段
java·数据库·重构
念白44335 分钟前
智能病历xml提取
数据库·sql·oracle
qingy_204639 分钟前
【JavaWeb】JavaWeb入门之XML详解
数据库·oracle
大数据面试宝典43 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
努力的小雨1 小时前
快速上手 KSQL:轻松与数据库交互的利器
数据库·经验分享
Gentle5861 小时前
labview中连接sql server数据库查询语句
数据库·labview
Gentle5861 小时前
labview用sql server数据库存取数据到一个单元格
数据库·labview
Daniel 大东1 小时前
idea 解决缓存损坏问题
java·缓存·intellij-idea