首页 > 数据库 >数据库基础--Redis知识体系(掌握Redis,看完这篇文章就够了!)

数据库基础--Redis知识体系(掌握Redis,看完这篇文章就够了!)

时间:2024-03-13 10:03:57浏览次数:25  
标签:name -- res 元素 Redis 就够 获取 client key

1.Redis数据库

Redis是一个开源的高性能键值存储数据库,类似字典。通常用作缓存、消息队列和数据存储等用途。mysql,mongodb都是以文件形式存储在磁盘上的,redis数据存在内存中,操作内存的速度远远高于磁盘,并且redis数据最终也可以存储在磁盘上。

Redis支持多种数据结构,包括字符串、列表、哈希、集合和有序集合等。

2.Redis配置文件

dbfilename数据文件
requirepass用户密码
masterauth主机密码
logofile日志文件
port端口号6379
databases数据库,默认16个,可以更改
logolevel日志等级
bind

绑定ip

redis启动服务器:redis-sever 配置文件路径

客户端连接服务器:redis-cli:-h 主机ip、-a 密码

获取配置信息:config get *,获取所有配置;获取单个配置,config get requirepass。

配置用户密码:config set requirepass 123456,配置完成,输入auth 123456,客户端才可以访问;但是在客户端修改用户密码是一次性的,永久配置需要再配置文件中修改。

3.Redis键操作(python环境下的操作)

keys()返回所有键
exists(k)查看键是否存在
expire(k, time)给键设置有效期
ttl(k)查看键存在的剩余时间
type(k)查看键对应值的类型
delete(k)删除键

4.Redis数据库5种数据类型的操作方法(python环境下的操作)

Redis5中数据类型:

        字符串:字符串是最基本的数据结构,可以存储任意类型的数据。

        列表:Redis的列表是一个有序的字符串元素集合,可以在列表的两端执行插入和删除操作。

       哈希: Redis的哈希是一个键值对的集合,适用于存储对象。

        集合:Redis的集合是一个无序的字符串元素集合,且元素不重复。

        有序集合:Redis的有序集合是一个有序的字符串元素集合,每个元素关联一个分数,通过分数进行排序。

字符串操作方法:

set(k, v)

设置单个

get(k)

获取单个

mset({k:v, k:v})

设置多个

mget(k, k, k,)

获取多个

incr(k)

加1

incrby(k, 增量)

加增量

decr(k)

减1

decrby(k, 增量)

减增量

setex(k, time, v)

设置带有有效期的键值

setnx(k, v)

不存在则插入,存在不插入,不会覆盖已存在的内容

append(k, v)

将指定值追加到指定键的值的末尾

strlen(k)

获取键的长度

列表操作方法:

lpush(k, v,v,v)

在开头插入

rpush(k, v, v)

在末尾插入

lpop(k)

删除开头的元素

rpop(k)

删除结尾的元素

linsert(key, after|before, pivot, value)

在指定位置插入指定元素

lrem(key, count, value)

删除指定个数的指定值

ltrim(key, start, stop)

将原始内容切片

lrange(key, start, end)

返回对应范围内的所有元素

lindex(key, index)

返回对应位置的元素

哈希操作方法:

hset(name, k, v)

存储一个

hget(name,k)

获取一个

hmset(name, {k1: v1, k2: v2})

存储多个

hmget(name, [k1, k2,...])

获取多个

hincrby(name, k, 增量)

加增量

hgetall(name)

找到键下的所有字段及字段对应值

hkeys(name)

获取键下的所有字段

hvals(name)

获取所有字段的值

hexists(name, key)

字段是否存在

hdel(name, key)

删除字段

hlen(name)

获取键的字段数量

集合操作方法:

sadd(name, *vlues)

多个数据插入集合

scard(key)

获取集合中元素个数

smembers(key)

返回集合中所有元素

srandmember(key)

随机取一个

srem(key, value)

删除指定元素

spop(key)

随机删除一个

sismember(key, value)

元素是否在集合中

sinter([k, k])

交集

sunion([k, k])

并集

sdiff([k, k])

差集

有序集合操作方法:

zadd(name, {v:score})

添加带有权重的元素

zcard(name)

获取键下的元素个数

zcount(name, min, max)

权重在min,max范围内元素的个数

zrange(name, start, stop)

获取指定索引对应的元素

zrevrange(name, start, stop)

逆序获取指定索引对应的元素

zrangebyscore(name, min, max)

获取指定权重范围内的元素

zrevrangebyscore(name, max, min)

逆序获取指定权重范围内的元素

zscore(name, value)

获取指定v对应的权重

zrem(name, v, v)

删除指定值

5.python与redis数据库交互

导入模块:首先安装第三方模块,使用pip命令,pip install redis

                  安装完成后,import redis

构建连接:client = redis.StrictRedis(password="密码"),设置了密码时必须要写上密码。

对数据进行增删改查

释放连接:client.close()

示例代码,以字符串操作为例:

# 导入模块
import redis


# 构建连接
client = redis.StrictRedis(password="123456")


# 1.字符串操作方法

# # 设置单个,set(k, v)
# res = client.set("s2", "hello python")
# # 执行成功,返回True
# print(res)

# 获取单个,get(k),返回对应值
# res = client.get("s2")
# print(res)

# 设置多个,mset({k:v, k:v})
# res = client.mset({"s3": "hi", "s4": "wake", "s5": 50})
# print(res)

# 获取多个,mget(k, k, k,)
# res = client.mget("s2", "s3", "s4", "s5")
# print(res)

# 加1,incr(k)
# res = client.incr("s5")
# print(res)

# 加增量,incrby(k, 增量)
# res = client.incrby("s5", 10)
# print(res)

# 减1,decr(k)
# res = client.decr("s5")
# print(res)

# 减增量,decrby(k, 增量)
# res = client.decrby("s5", 10)
# print(res)

# 设置带有有效期的键值,setex(k, time, v)
# res = client.setex("s6", 20, "time")
# print(res)

# 不存在则插入,存在不插入,不会覆盖已存在的内容,setnx(k, v)
# res = client.setnx("s4", 100)
# print(res)

# 将指定值追加到指定键的值的末尾,append(k, v)
# res = client.append("s4", "hello")
# print(res)

# 获取键的长度,strlen(k)
# res = client.strlen("s4")
# print(res)

# 关闭连接
client.close()

小结

redis在命令行窗口的操作方法与在python环境下的是有许多不同的,本文主要的操作方法都是基于python环境下运行的。

标签:name,--,res,元素,Redis,就够,获取,client,key
From: https://blog.csdn.net/weixin_65436886/article/details/136661774

相关文章

  • 交换机的二、三、四层交换技术,教科书式的工作原理解释
    1交换机交换机的工作原理交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过......
  • 常见网络摄像机IP搜索不到可能导致的问题及解决办法汇总
    前两天就遇到同一个问题,网络摄像机搜不到,幸好多带了一个摄像头,不然就糗大了,关于这个问题,从工地上回来就到处请教,找了一下,所以就把答案分享出来,看看能不能帮到你。导致网络摄像机IP搜索不到的原因是多样的,而网络摄像机IP搜索不到可能引发的问题也是多样的,本文将针对网络摄像机......
  • Failed to populate field: ‘String‘ object has no attribute
    ROS2中我们使用编译topicpub如上报错时,可以考虑检查一下命令行是否书写错误,这里我的问题是ros2topicpub/chatterstd_msgs/msg/String'data:"123"':和"之间少打了一个空格发生报错,改正后可以正常打印,问题解决ros2topicpubarg手动发布命令......
  • 什么是PLC设备数据采集?
    在当今工业4.0和智能制造的大背景下,数据的价值日益凸显。特别是对于PLC(可编程逻辑控制器)这类核心工业设备,数据采集显得尤为重要。那么,究竟什么是PLC设备数据采集?它又有何价值呢?今天,就让我们通过介绍HiWooBox,一款卓越的PLC设备数据采集工具,来为您揭开这层面纱。一、PLC设备......
  • 什么是PLC远程控制模块?
    随着工业自动化的不断发展,可编程逻辑控制器(PLC)已成为现代工业设备中不可或缺的核心组件。然而,传统的PLC管理方式往往受限于现场操作和维护,难以满足日益复杂的工业需求。在这一背景下,PLC远程控制模块应运而生,为工业设备的远程管理带来了革命性的变革。今天,我们就来深入探讨一......
  • CAP原理--一起学习吧之架构
    CAP定理为我们理解和设计分布式系统提供了重要的指导原则,它提醒我们在不同的场景下需要根据实际需求来权衡和选择一致性、可用性和分区容错性之间的平衡。二一、定义CAP定理,又被称为CAP原则,是指在一个分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partitio......
  • 躲不掉的技术话题:蓝牙
    目录一、蓝牙技术的应用领域二、学习蓝牙技术的原因三、蓝牙核心技术点罗列一、蓝牙技术的应用领域蓝牙技术是一种无线通信技术,广泛应用于各个领域。以下是蓝牙技术的一些主要应用领域:二、学习蓝牙技术的原因嵌入式软件工程师学习蓝牙相关技术的原因有以下几点:三、......
  • 分布式与集群--一起学习吧之架构
    分布式和集群都是为了提高系统的性能和可靠性而采用的技术手段。它们在实际应用中各有优势,可以互相结合使用,以实现更好的系统性能和健壮性。一、区别组织结构:分布式:将一个复杂的业务系统拆分成多个子业务系统,每个子业务系统部署在不同的服务器上。这意味着,不同的子业务运行......
  • 20个Python random模块的代码示例
    本文分享自华为云社区《Python随机数探秘:深入解析random模块的神奇之处》,作者:柠檬味拥抱。标准库random函数大全:探索Python中的随机数生成随机数在计算机科学和数据科学领域中扮演着重要角色,Python的标准库中提供了random模块,用于生成各种随机数。本篇博客将深入探讨random模块......
  • Ubuntu更新显卡驱动失败解决
    在更新显卡驱动的时候无论是命令还是手动点都是显示报错的sudoaptinstallnvidia-driver-535报错信息为:错误:18http://security.ubuntu.com/ubuntufocal-security/restrictedamd64nvidia-driver-535amd64535.146.02-0ubuntu0.20.04.1404NotFound[IP:2620:2......