《Redis 入门指南:快速掌握高性能缓存技术》

目录

一、准备工作

二、操作数据库

[2.1 切换数据库](#2.1 切换数据库)

[2.2 存储和查看数据](#2.2 存储和查看数据)

一、存储语法

二、一次性存储多个键值对

三、追加值

四、查看值的类型

五、查询值

六、一次查询多个值

七、查看当下数据库所有的键

八、删除键

[九、查看 键 是否存在](#九、查看 键 是否存在)

十、重命名键

[2.3 过期时间管理](#2.3 过期时间管理)

[2.4 列表(Lists)](#2.4 列表(Lists))

[2.5 集合(Set)](#2.5 集合(Set))

[2.6 有序集合(Sorted Set)](#2.6 有序集合(Sorted Set))

[2.7 哈希(Hash)](#2.7 哈希(Hash))

三、公共操作

四、redis与python交互


一、准备工作

安装redis非常简单,只需要下载压缩文件解压即可

链接:redis-latest.rar官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘

提取码:1024

下载完成后按照以下步骤开启服务

第一步:先找到解压的文件,可以选择在该文件夹内的导航栏输入cmd回车或者直接双击redis-server二选一打开终端

第二步:在终端输入 redis-server 开启服务

注意:这个窗口不能关闭

第三步:重开一个终端输入 redis-cli 【在导航栏输入的cmd打开的终端】

然后就可以在这里操作 redis数据库了


二、操作数据库

redis支持16个数据库(自带,不可减少或增加),编号从0到15,默认进入0号数据库,redis是以键值对存储的,与MySQL不同,没有表格概念,区分大小写

2.1 切换数据库

select 数据库编号  # 进入指定数据库

例如:进入 2 号数据库

select 1

2.2 存储和查看数据

一、存储语法

设置键值对:set 键 值

set s1 lysir
set s2 零一先生

注意 :存储中文字符时,需在进入 Redis 时使用 redis-cli --raw,否则显示乱码,但存储是成功的。

二、一次性存储多个键值对

语法:mset 键1 值1 键2 值2 ...

mset s3 AA s4 BB s5 CC

三、追加值

语法:append 键 追加的值

append s3 aa  # 结果变为 AAaa

四、查看值的类型

语法:type 键

type s1

五、查询值

语法:get 键

get s1

六、一次查询多个值

语法:mget 键1 键2 ...

mget s1 s3 s5

七、查看当下数据库所有的键

语法:keys *

八、删除键

语法:del 键1 键2 ...

del s1 s3

九、查看 键 是否存在

语法:exists 键

返回值:存在返回 1,不存在返回 0

exists s2

十、重命名键

语法:rename 旧键 新键

rename s2 new_s1

2.3 过期时间管理

当键超过设定的时间之后就会自动失效删除

  • 设置键的过期时间
    expire 键 时间(秒)

  • 查看键的剩余生存时间
    ttl 键

    返回值:

    • -2:键已过期

    • -1:键不存在或未设置过期时间

  • 取消键的过期时间
    persist 键


2.4 列表(Lists)

  • 特点:有序、可重复、动态(可在两端添加)。
  • 1、从左边插入数据
    lpush 列表键 值1 值2 ... 值

示例:

lpush L1 A B C D lysir
  • 2、从右边插入数据
    rpush 列表键 值1 值2 ... 值N

示例:

rpush R1 E F G H lysir

3、查看列表内容
lrange 列表键 开始位置 结束位置

lrange L1 0 -1  # -1 表示到末尾
  • 从左边删除一个元素
    lpop 列表键

  • 从右边删除一个元素
    rpop 列表键

  • 删除整个列表
    del 列表键

4、获取指定索引的元素
lindex 列表键 索引

lindex R1 3

5、修改指定索引的元素值
lset 列表键 下标 值

lset L1 3 china

2.5 集合(Set)

  • 特点:无序、唯一、动态。

1、添加元素到集合
sadd 集合键 值1 值2 ... 值N

示例:

sadd set1 v1 v2 v3 v4 v5

2、查看集合中所有成员
smembers 集合键

smembers set1

3、检查元素是否在集合中
sismember 集合键 值

返回值:存在返回 1,不存在返回 0

sismember set1 v6

4、删除集合中的元素
srem 集合键 值1 值2 ...

srem set1 v1 v2 v5

2.6 有序集合(Sorted Set)

  • 特点:有序(有下标)、唯一、每个元素关联一个分数(用于排序),动态。

1、添加元素到有序集合
zadd 键 分数1 值1 分数2 值2 ... 分数N 值N

zadd sset1 80 A 90 B 100 C 98 D 88 E

2、获取有序集合的元素
zrange 键 起始下标 结束下标

zrange sset1 0 -1  # -1 表示到末尾

3、获取有序集合的分数
zscore 键 值

zscore sset1 A
  • 4、获取有序集合的元素及分数

    • 正序查看:
      zrange 键 起始下标 结束下标 withscores

      zrange sset1 0 -1 withscores
    
    • 倒序查看:
      zrevrange 键 起始下标 结束下标 withscores

      zrevrange sset1 0 -1 withscores
    
  • 5、根据分数筛选查询
    zrangebyscore 键 最小分数 最大分数

    zrangebyscore sset1 80 90

6、修改指定成员的分数
zincrby 键 要修改的分数(正数是加 负数是减) 值

zincrby sset1 200 B
zincrby sset1 -50 C

7、删除有序集合中的元素
zrem 键 值1 值2 ... 值N

zrem sset1 A C D

2.7 哈希(Hash)

  • 特点:键值对存储(一个键对应多个值),无序、动态。

1、单个设置

语法:hset 哈希键 字段 值

2、多个设置

hmset 哈希键 字段1 值1 字段2 值2 ...

hmset HXuser name zhou age 18 msg xxx

3、获取哈希表的值

  • 获取单个值:
    hget 哈希键 字段

  • 获取多个值:
    hmget 哈希键 字段1 字段2 ...

    hmget HXuser name age msg

4、获取哈希表所有 字段 及 值

  • 获取所有值:
    hvals 哈希键

  • 获取所有字段:
    hkeys 哈希键

  • 获取所有键值:
    hgetall 哈希键

    hgetall HXuser

5、检查哈希表中是否存 在 某个字段

hexists 哈希键 字段

返回值:存在返回 1,不存在返回 0

hexists HXuser china

7、删除哈希表 字段

hdel 哈希键 字段1 字段2 ...

返回值:实际删除的字段数量。

hdel HXuser age msg

三、公共操作

  • 查看所有键
    keys *

  • 清空当前数据库
    flushdb

  • 清空所有数据库
    flushall
    注意:此操作不可逆,会清空所有 16 个数据库的数据。

特别注意

  • Redis 数据默认存储在内存中,服务关闭后数据会丢失。若需持久化存储,请查阅相关文档。

四、redis与python交互

redis并不是内置模块,所以需要先下载 redis 模块

安装Redis库:

pip install redis -i https://mirrors.aliyun.com/pypi/simple/

下面是python与redis交互演示代码

python 复制代码
# 1 导包
import redis
# 2建立连接
db_con = {
    'host':'127.0.0.1',  #主机
    'port':6379, # 端口
    'db':0   #连接哪个数据库
}
# 3连接Ridis服务器(会返回一个连接对象)
r = redis.Redis(**db_con)
print(r)

# 4对数据库进行操作
# 设置键值对=> r.set('key1','value1')
#a.新增
r.set('name','tonny')
#b.查询(获取)
name = r.get('name')
print(name)

#其他操作也都可以通过 r.出来(点出来)

# 5最后记得关闭连接
r.close()

温馨提示:

1,必须确保 redis 服务器正常开启了,否则会连接失败

2,redis 端口号可以在开启服务器的界面查看

相关推荐
m0_6724496019 分钟前
使用Java操作Excel
java·python·excel
努力努力再努力wz24 分钟前
【Linux实践系列】:用c语言实现一个shell外壳程序
linux·运维·服务器·c语言·c++·redis
张琪杭29 分钟前
PyTorch大白话解释算子二
人工智能·pytorch·python
weixin_3077791334 分钟前
PySpark实现获取Cloud Storage上Parquet文件的数据结构,并自动在Google BigQuery里建表和生成对应的建表和导入数据的SQL
数据仓库·python·spark·云计算·googlecloud
დ旧言~36 分钟前
【Python】基础知识四
python
修昔底德1 小时前
费曼学习法12 - 告别 Excel!用 Python Pandas 开启数据分析高效之路 (Pandas 入门篇)
人工智能·python·学习·excel·pandas
网络风云1 小时前
Django 5实用指南(十二)异步处理与Celery集成
后端·python·django
蹦蹦跳跳真可爱5891 小时前
Python----线性代数(线性代数基础:标量,向量,矩阵,张量)
python·线性代数·矩阵
计算机学长大白1 小时前
Redis是什么?如何使用Redis进行缓存操作?
数据库·redis·缓存
程序员徐师兄2 小时前
基于Python Django的人脸识别上课考勤系统(附源码,部署)
开发语言·python·django·人脸识别考勤·人脸识别上课考勤系统