【学习笔记】Redis学习笔记

Redis简介

什么是Redis?

redis是一个开源的基于内存的数据存储系统

使用场景

作为数据库、缓存和消息中间件

数据类型

五种基本数据类型
简介类型特性场景

字符串 String
二进制安全可以包含任何数据,比如 JPG 图片或者序列化的对象,一个键最大能存储 512M简短的字符场景

哈希 Hash
键值对集合,即编程语言中的 Map 类型适合存储对象,并且可以像数据库中 update 一个属性一样只修改某一项属性值存储、读取、修改用户属性
列表 List链表(双向链表)增删快,提供了操作某一段元素的 API①最新消息排行等功能(比如朋友圈的时间线); ②消息队列
集合Set哈希表实现,元素不重复①添加、删除,查找的复杂度都是 O(1) ②为集合提供了求交集、并集、差集等操作①共同好友; ②利用唯一性,统计访问网站的所有独立 IP; ③好友推荐时,根据 tag 求交集,大于某个阈值就可以推荐
有序集合 Sorted Set将 Set 中的元素增加一个权重参数 score,元素按 score 有序排列数据插入集合时,已经进行天然排序①排行榜; ②带权重的消息队列
五种高级数据类型
HyperLogLog海量数据基数统计的场景,比如百万级网页 UV 计数等
消息队列 Stream相比于基于 List 类型实现的消息队列,有这两个特有的特性:自动生成全局唯一消息ID,支持以消费组形式消费数据
地理空间 Geospatial存储地理位置信息的场景,比如滴滴叫车
位图 Bitmap二值状态统计的场景,比如签到、判断用户登陆状态、连续签到用户总数等
位域 Bitfield将一个 Redis 字符串看作是一个由二进制位组成的数组, 并对这个数组中任意偏移进行访问

操作方式

  • CLI (Command Line Interface) 通过Redis-CLI命令行工具来使用Redis
  • API (Application Programming g Interface) 通过编写代码调用api来使用Redis
  • GUI((Graphical User Interface) 使用图形化工具来使用Redis

Redis的优势

  • 性能非常高,因为数据存在内存中,所以数据获取快;
  • 支持多种数据结构,包括字符串、列表、集合、有序集合、哈希等;
  • 支持事务,且操作遵守原子性,即对数据的操作要么都执行,要么都不支持;
  • 还拥有其他丰富的功能,队列、主从复制、集群、数据持久化等功能。

如何安装Redis

linux

  1. 安装Redis: 对于大多数Linux发行版,可以使用包管理器安装Redis。以下以Ubuntu为例:
    text
    复制代码
    sudo apt update sudo apt install redis-server
  2. 启动Redis服务:
    text
    复制代码
    sudo service redis-server start
  3. 使用Redis客户端: 打开终端,直接运行以下命令连接到Redis服务:
    text
    复制代码
    redis-cli

MacOS

  1. 安装Redis: 可以使用Homebrew来安装Redis:

    text
    复制代码
    brew install redis
  2. 启动Redis服务:

    text
    复制代码
    brew services start redis
  3. 使用Redis客户端: 打开终端,直接运行以下命令连接到Redis服务:

    text
    复制代码
    redis-cli

Windows

三种方式:

  • WSL安装linux,在linux里安装Redis
  • 安装Docker,通过Docker运行Redis镜像

主要写通过安装文件来操作

  • 通过安装文件安装
    1. 下载Redis: 访问Redis官网 redis.io/download,下载Windows版本的Redis,github地址Releases · tporadowski/redis (github.com)
    2. 安装Redis: 解压下载的压缩包到指定的目录。
    3. 启动Redis: 打开命令提示符(cmd),切换到Redis解压目录,运行以下命令启动Redis服务:
      text
      复制代码
      redis-server.exe redis.windows.conf
    4. 使用Redis客户端: 在另一个命令提示符窗口中,切换到Redis解压目录,运行以下命令连接到Redis服务:
      text
      复制代码
      redis-cli.exe
image.png
text
复制代码
用set和get操作redis
image.png

RedisInsight 下载路径:RedisInsight - The Best Redis GUI 随便输入邮箱和信息来下载 快捷管理 image.png 刚创建的key可以看到了

image.png 下方可以快捷打开命令行,无需在cmd里操作 image.png

开始使用Redis

Redis命令

  • 设置数据 key——value Redis中的数据是由键值对存取的,所以需要指定一个键和一个值,键和值之间使用空格来分隔,使用SET命令
text
复制代码
SET name TingFeng
image.png - 获取数据 使用GET命令 ``` GET name ``` image.png

tip:Redis的键是区分大小写的 TingFeng ≠tingfeng

  • 删除值 使用DEL命令,删除之后再获取就提示(nil)
text
复制代码
DEL name
image.png
  • 判断键是否存在 使用EXISTS命令
text
复制代码
EXISTS name

name被删了所以不存在(0),k2之前被创建过,所以存在(1)

image.png
  • 查看数据库中都有哪些键 使用KEYS命令,比如KEYS * 查找所有的键
text
复制代码
KEYS *
image.png
  • 删除所有键(慎用) FLUSHALL
image.png - 中文显示 redis默认显示二进制,所以无法正常展示中文,需要退出重新进入redis,在登录的时候加上 --raw表示以原始形式显示内容 ``` redis-cli --raw ``` image.png
  • 清屏 和linux一样,使用clear清屏
image.png
  • 设置带有过期时间的键值对 用TTL(time to live)命令来查看键值对的过期时间,显示-1就是没有过期时间,显示-2就是过期了,这个键就查不到了
text
复制代码
TTL name
image.png

使用EXPIRE来设置过期时间 20表示20秒

text
复制代码
EXPIRE name 20
image.png

LIST

也叫列表,用来存储和操作一组有顺序的数据

PUSH(添加元素)

用LPUSH或RPUSH来将元素添加到列表的头部或尾部 添加字母(letter)列表,值为a,也可以添加多个元素,比如LPUSH c d e空格隔开,由于LPUSH是从头部添加,所以顺序是跟栈一样后进的在前 e d c,RPUSH 是在尾部添加,所以是按顺序的

text
复制代码
LPUSH letter a LPUSH letter b LPUSH letter c d e RPUSH letter f g h

获取列表内容使用LRANGE命令 格式参考,key 起始位置和结束位置 起始0表示第一个元素 -1表示最后一个元素

text
复制代码
LRANGE letter 0 -1
image.png ##### POP(删除元素) 用LPOP和RPOP分别从头部和尾部删除元素 pop命令不需要指定,会返回被删除的元素,后面加数字表示删除多个(redis5.0不支持删除多个元素)
text
复制代码
LPOP letter RPOP letter
image.png

LLEN(查看列表长度)

image.png

LTRIM(删除设置的值范围以外的元素) 删除了2-3范围以外的元素,也就是只保留2和3两个元素(d是第0个)

text
复制代码
LLEN letter LTRIM letter 2 3
image.png
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP