Windows的Redis五种数据类型的操作(python操作以及数据库可视化)

本文介绍了Redis的概述、下载与安装注意事项,以及在终端和Python中的基本操作,包括字符串、哈希、列表、集合和有序集合的数据处理。同时提及了如何通过NavicatPremium进行可视化操作。
摘要由CSDN通过智能技术生成

1. Redis 数据库的使用和基本介绍

1.1 Redis数据库简介

Redis是一种高性能的key-value存储系统,支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。它是一个开源项目,使用ANSI C语言编写,遵循BSD协议。Redis不仅可以作为缓存系统使用,还适用于事件发布/订阅、高速队列等多种场景。

Redis的一个显著特点是其纯内存操作的特性,这使得它能够提供极高的读写性能,每秒可以处理超过10万次读写操作。然而,这也意味着Redis的数据存储在内存中,因此其容量受到物理内存大小的限制[6]。为了保证数据的持久化,Redis支持将内存中的数据保存到磁盘上,这样即使在重启后也可以恢复使用。

Redis采用单线程模型来处理客户端请求,这种设计避免了频繁的上下文切换,提高了性能。此外,Redis的所有操作都是原子性的,支持事务,确保了数据的一致性和完整性。

尽管Redis具有许多优点,但它也有一些缺点。例如,由于其数据完全存储在内存中,因此不具备自动容错和恢复功能,且数据不能及时同步到其他服务器或设备。此外,Redis的数据容量受限于可用内存大小,且由于采用单线程模型,其扩展性可能不如多线程或多进程的数据库系统。

总的来说,Redis是一个功能强大、应用广泛的键值存储系统,适合用作缓存、消息队列、实时分析工具等场景。开发者在选择使用Redis时,需要根据具体的应用需求和环境条件来权衡其优缺点。

1.2 Redis的下载地址

这是Redis的官网:https://redis.io/

这是中文版教程:https://www.redis.net.cn/tutorial/3501.html

在里面可以下载到Redis的各种版本,但是对于window的用户来说,就不能直接在里面下载,因为官网没有提供window版本的redis的下载。不过可以通过官网文档,了解Redis的具体信息。

而有微软开源团队开始在github上面维护windows版本的Redis,但是在2016年就不再维护了,版本止步于3.2.100。该团队维护的Redis的下载地址: https://github.com/microsoftarchive/redis/tags

有另外一波大佬重新站了出来,将redis的Windows版本继续更新了!

下载地址:https://github.com/tporadowski/redis/tags

目前最新版本更新到5.0.14.1

1.3 Redist安装注意事项

前面安装提示进行安装就行,不建议更改路径安装,安装在默认路径就行。在路径选择这个界面,选择自动配置环境变量,不然后续就要自己去配置环境变量了。

2. Redis在终端的基本操作

通过win+ R快捷键,然后输入cmd进入终端。 

然后在终端输入redis-cli指令,进入redis操作界面。

redis的通用命令有这些:

  1. select 0 :切换数据库仓库,默认为0-15号仓库
  2. keys * : 查询当下数据仓库中的所有数据
  3. del key : 删除指定的 key 和 value
  4. type key: 获取键对应的value数据类型
  5. flushall:这个是清楚数据库,在实际开发的时候要慎用

2.1 字符串string的基本操作

在终端可以结合redis 的通用命令操作

# 1、保存一个值为字符串类型的数据
set key value
set url https:// www.baidu.com/
# 2、获取字符串类型的值
get key
get name
# 3、删除值为字符串类型的数据
del key
del name

2.2 哈希类型 hash的数据基本处理

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

# 1、保存一个值为哈希类型的数据
hset key field value
# hset data1 name Marry age 18 
hset data1 name Marry age 18 
# 2、获取指定field对应的值
hget key field
hget data1 Marry
hget data1 age
# 3、获取哈希数据中所有的field和value
hgetall key
heetall data1
# 4、删除值为哈希类型的数据
hdel key field
# 删除两个keys和value的值
hdel data1 Marry age

2.3 列表数据类型的数据基本处理

# 1、保存一个值为列表类型的数据
lpush key value # 将元素加入列表左边
lpush name Marry
rpush key value # 将元素加入列表右边
rpush name Jake

# 2、获取列表中的数据
lrange key start end
lrange name 0 -1 # 获取所有数据
# 结果是
-----------------------------------------------
1) "Marry"
2) "Jake"
-----------------------------------------------
lpush name Mike # 将元素加入列表左边
结果是
-----------------------------------------------
1) "Mike"
2) "Marry"
3) "Jake"
-----------------------------------------------
# 3、删除列表中的元素并将该元素返回
lpop key # 删除列表最左边的元素,并返回该元素
lpop name
rpop key # 删除列表最右边的元素,并返回该元素
rpop name

注:Lrange 返回列表中从 START 到 END 之间的数据,其中 0 表示列表的第一个元素, 1 表示列表的 第二个元素;-1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

2.4 集合类型的数据的处理

集合类似与python的字典,有去重的效果。

# 1、保存一个值为集合的数据
sadd key value
sadd name Marry
# 2、获取set集合中的所有元素
smembers key
smembers name
# 3、删除集合中的某个元素
srem key value
srem name Marry

2.5 Redis 有序集合(sorted set)

元素不允许重复,且元素有顺序,每个元素都会关联一个double类型的分数,通过分数来对集合成 员进行排序

# 1、保存一个值为有序集合的数据
zadd key score value
zadd name 1 Marry 2 Mike 4 Jarry
# 2、查看排序后的集合数据(不包含分数)
zrange key start end
zrange name 0 -1
结果:
1) "Marry"
2) "Mike"
3) "Jarry"
# 3、查看排序后的集合数据(包含分数)
zrange key start end withscores
zrange name 0 -1 withscores
# 4、删除集合中的数据
zrem key value
zrem name Marry

3. Python中的Redis操作

安装redis库

pip intall redis

3.1 使用python操作Redis中的string数据

import redis
 # 建立与Redis服务器的连接
r = redis.Redis(host='localhost', port=6379, db=0)
# 设置键值对
r.set('name','Marry')
 # 获取键对应的值
value = r.get('name')
print(value.decode()) # 将字节转换为字符串输出
# 修改键对应的值
r.set('name','Mike')
# 再次获取键对应的值
value = r.get('name')
print(value.decode())
# 删除键
r.delete('name')
# # 再次尝试获取被删除的键对应的值
value = r.get('name')
print(value) # 如果键不存在,则返回None

3.2 使用python操作Redis中的哈希类型数据

# 创建对象连接redis数据库
r = redis.Redis(host='localhost', port=6379, db=0)

# 设置哈希类型的字段和值
r.hset('teacher', 'name', 'Marry')
r.hset('teacher', 'sex', 'female')

# 获取哈希类型的字段和值
value1 = r.hget('teacher', 'name')
value2 = r.hget('teacher', 'sex')
print(value1.decode(), value2.decode())


# 修改哈希类型的字段和值
r.hset('teacher', 'name', 'Jake')
r.hset('teacher', 'sex', 'male')

# 获取哈希类型的字段和值
value1 = r.hget('teacher', 'name')
value2 = r.hget('teacher', 'sex')
print(value1.decode(), value2.decode())

# 删除哈希类型的字段和值
r.hdel('teacher', 'name')
r.hdel('teacher', 'sex')

# 获取哈希类型的字段和值
value1 = r.hget('teacher', 'name')
value2 = r.hget('teacher', 'sex')
print(value1, value2)

3.3 使用python操作Redis中的列表数据

import redis        # 导入安装的第三方库(redis)

# 创建对象连接redis数据库
r = redis.Redis(host='localhost', port=6379, db=0)

# 设置列表类型的值
r.rpush('name', 'Marry')
r.rpush('name', 'Jake')
r.rpush('name', 'Mike')

# 获取列表的长度
length = r.llen('name')
print('列表长度为:', length)

# # 获取列表的内容
elements = r.lrange('name', 0, -1)
# print(elements)
print('列表中的元素为:', [element.decode() for element in elements])
#
# # 修改列表中的元素
r.lset('name', 0, 'Jarry')
#
# # 获取列表的内容
elements = r.lrange('name', 0, -1)
# print(elements)
print('列表中的元素为:', [element.decode() for element in elements])
#
# # 删除列表中的元素
r.lrem('name', 0, 'Jarry')
#
# # 获取列表的内容
elements = r.lrange('name', 0, -1)
print(elements)
print('列表中的元素为:', [element.decode() for element in elements])


----------------------------------
输出结果为:
列表长度为: 3
列表中的元素为: ['Marry', 'Jake', 'Mike']
列表中的元素为: ['Jarry', 'Jake', 'Mike']
[b'Jake', b'Mike']
列表中的元素为: ['Jake', 'Mike']

3.4 使用python操作Redis中的集合(set)

import redis        # 导入安装的第三方库(redis)

# 创建对象连接redis数据库
r = redis.Redis(host='localhost', port=6379, db=0)

# 设置集合的元素
r.sadd('name', 'Mike')
r.sadd('name', 'Jarry')
r.sadd('name', 'Jack')
r.sadd('name', 'Marry')

# 获取集合中的元素
elements = r.smembers('name')
print('集合的数据:', [element.decode() for element in elements])

# 判断集合中是否存在对应的元素(0代表不存在,1代表存在)
is_member = r.sismember('name', 'Cherry')
print('查询结果为:', is_member)
is_member_1 = r.sismember('name', 'Jarry')
print('查询结果为:', is_member_1)

# 删除集合中的元素
r.srem('name', 'Mike')

# 获取集合中的元素
elements = r.smembers('name')
print('集合的数据:', [element.decode() for element in elements])

--------------------------------------------------------------------------

输出结果为

集合的数据: ['Mike', 'Jack', 'Jarry', 'Marry']
查询结果为: 0
查询结果为: 1
集合的数据: ['Jack', 'Jarry', 'Marry']

3.5 使用python操作Redis中的有序集合

import redis        # 导入安装的第三方库(redis)

# 创建对象连接redis数据库
r = redis.Redis(host='localhost', port=6379, db=0)

# 设置有序集合的元素
r.zadd('name_age', {'Marry': 18})

# 设置有序集合多个元素
r.zadd('name_age', {'Mike': 28, 'Juicy': 38})

# 获取有序集合中指定的成绩分数
score = r.zscore('name_age', 'Mike')
print('年龄为:', score)

# 获取有序集合中所有的岁数分数
all_score = r.zrange('name_age', 0, -1, withscores=True)
print(all_score)

# 删除有序集合中的元素
r.zrem('name_age', 'Mike')

# 获取有序集合中所有的成绩分数
all_score = r.zrange('name_age', 0, -1, withscores=True)
print(all_score)

# 删除指定排名范围内的成员
r.zremrangebyrank('name_age', 0, 0)

# 获取有序集合中所有的成绩分数
all_score = r.zrange('name_age', 0, -1, withscores=True)
print(all_score)

--------------------------------------------------------

输出结果 

[(b'Marry', 18.0), (b'Mike', 28.0), (b'Juicy', 38.0)]
[(b'Marry', 18.0), (b'Juicy', 38.0)]
[(b'Juicy', 38.0)]

4. 利用Navicat Premium 进行数据库的可视化操作

可以看到前面写入的数据,可以在这个软件上看到。

具体软件资源,可以参考这篇文章:

Navicat和MySQL的安装、破解以及MySQL的使用(详细)_navicat for mysql 许可证-CSDN博客

按照这个提示完成安装完成就可以愉快的使用了。

安装完之后,打开界面点击连接

然后命名连接,没有设置密码就按照默认的来就行

然后就可以看到了,连接了Redis数据库的具体界面了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值