文章目录
- Redis简介
- 安装Redis
- Redis常用命令
- 全局命令
- String类型数据
- Hash哈希类型数据
- List列表类型数据
- Set集合类型数据
- SortedSet有序集合类型数据
- 一些选择题
- 一些选择题
Redis简介
- Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构: 字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。
NoSql数据库:not only sql,除关系型数据库之外的所有非关系型数据库
-
Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。 同时,Redis还可以将内存中的数据以快照或日志的形式保存到硬盘上,以保证数据的安全性。
-
快照形式:即RDB形式,直接将内存中数据原原本本传硬盘上
-
优点:数据体积小,恢复数据到内存很快
-
缺点:将内存数据一下子存到硬盘上很耗时,存储时可能造成阻塞,对其他业务有影响
-
不适合实时去做,适合几个小时做一次数据备份
-
-
日志形式:AOF形式,每执行一个redis命令,就以日志的形式存储一次
-
优点:实时、快速
-
缺点:以追加的形式存储,体积大占空间。恢复速度慢(恢复时会将硬盘中命令全部跑一次)
-
-
Redis典型的应用场景包括:
-
缓存:频繁访问的数据,从内存上取比硬盘上快
-
排行榜:如热门帖子等,访问是很频繁的,进行缓存效率高
-
计数器:每访问一次帖子浏览量加一,数据存硬盘效率太低
-
社交网络:点赞关注等。放内存更快访问;且关系型数据库里不方便存(就一个数据还要建一张表),以键值对形式存到内存中
-
消息队列:不是专门做消息队列的工具,项目对消息队列要求不是特别高时,可以用redis
-
… …
-
安装Redis
https://redis.io/ :下载Linux系统的redis安装包,查询redis的数据命令等
https://github.com/microsoftarchive/redis :微软做的windows系统的redis安装包
.msi 安装程序 . zip 压缩包
安装时,仅需改存储路径
将redis的安装路径设置为系统变量
Redis常用命令
官网:https://redis.io/
全局命令
cmd中启动redis: redis-cli
redis内置16个库,无名字,用0-15的数字索引进行区分
切换库: select 库索引
**刷新当前库:**flushdb 刷新后清除库中数据
**查询当前库里的key:**keys * 所有key
keys test* 以test开头的key
**查看key的值类型:**type key
**查看key是否存在(1真0假):**exists key [key …]
**删除key:**del key [key …]
**设置key过期时间:**expire key seconds
seconds为过期秒数,过了这个秒数,会自动删除key
String类型数据
**key命名规则:**多个单词之间用 “ : ” 分隔,如 test:count
添加数据: set key名 value值
**获取数据:**get key名 value值
**数据自增1:**incr key
数据自减1: decr key
Hash哈希类型数据
redis中数据以key-value形式存储,因此hash类型数据,key名相当于hash表名,fields相当于表中键值对的键名
**存数据:**hset key名 fields value
**取数据:**gset key名 fields
List列表类型数据
很灵活,若看作横向容器,支持从左边()往里装/取数据,也支持从右边往里装/取数据。
- 左进右出:栈
- 左进左出:队列
命令中,l 代表left,r 代表right
从左边存数据:lpush key值 value [value…]
越先放入索引越大,越后放入索引越小
如按101,102,103的顺序朝list中放数据,则list中数据从左到右为 103,102,101,索引从左到右为0,1,2
**查看list长度:**llen key
**查看list中指定索引下的值:**lindex key index
**查看某个索引范围内的值:**lrange key start stop
0表示第一个数据,-1表示最后一个数据
**从右边取数据:**rpop key
Set集合类型数据
列表有序,数据可重复
集合无序,数据不可重复
**存数据:**sadd key member [member…]
s代表set
**查看集合中元素个数:**scard key
从集合中随机的弹出一个元素:spop key [count]
**该命令可用于抽奖:**set中存放不同用户的id,每个id只有一个,每次随机弹出一个id作为中奖用户
**查看集合中元素:**smember key
SortedSet有序集合类型数据
给每一个存的值,附加一个分数,按分数排序
**存数据:**zadd key score member [score member …]
**查看集合中元素个数:**zcard key
**查询元素对应的分数:**zscore key member
**查询元素排名(默认由小到大):**zrank key member
**取某个排名范围内的数据:**zrange key start stop
一些选择题
B
C
A
rt stop
[外链图片转存中…(img-0CQye3dU-1709434100818)]
一些选择题
[外链图片转存中…(img-SqV0qa5c-1709434100819)]
B
[外链图片转存中…(img-iWVOX7MR-1709434100819)]
C
[外链图片转存中…(img-rTkfsOqd-1709434100820)]
A