一文入门redis数据库

Redis 是一个开源的内存数据结构存储系统,通常用于缓存和数据存储。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,并且提供了丰富的命令来操作这些数据结构。Redis 的特性使其非常适合用作数据库、缓存、消息代理等。

redis 是一个内存数据库,存放了诸多键与值

一,redis数据库的特性

  1. 内存存储: Redis 将数据存储在内存中,提供了非常快的数据访问速度。可以选择将数据持久化到磁盘以防止数据丢失 

  2. 持久化:

    • RDB(快照): 定期将数据集快照保存到磁盘。
    • AOF(追加文件): 将每次写操作记录到日志中,可以实现更高的数据安全性。

二,启动redis服务

本地运行redis库

黑窗口命令框输入指令:redis-server  后面跟上redis.conf  启动redis服务

保持该服务的窗口不关闭,另打开命令窗口 输入指令:redis-cli   即可进入到redis操作系统

pycharm上使用redis

终端下载 pip install redis

导入模块 import redis

创建连接  client = redis.Redis()  

关闭连接

linux上使用redis  与本地类似

本地通过ubuntu 远程使用redis  只需在创建连接时,在括号内添加 ubuntu ip 和密码

redis 可视化工具:RDM

RDM 可连接本地或者远程

连接本地需要在黑窗口打开redis服务

连接远程需要启动ubuntu,并在连接设置时设置对应的ip

三,redis数据类型以及对应操作

1.redis 共有五种数据类型 

分别为 string 字符串

list        列表

hash     哈希表

set        集合

zset      有序集合

2.分别对应的操作

string操作

 string字符串操作
# 设置键值对,插入
# client.set('id',101)
# # 插入多个
# client.mset({'name':'小龙','age':21})
# 查询键的值
# print(client.get('id'))
# 查询多个键的值
# print(client.mget(['id', 'name', 'age']))
# 设置插入键值对时,给予键的存活时间
# client.set('nothing',20,ex= 50)
# 赋予/修改键的存活时间
# client.setex('id', 5,101 )
# print(client.ttl('id'))

# 增加键值
# client.incrby('id',amount=10)

# 减少键值
# client.decrby()


# 对键的操作
# 获取键的类型
# print(client.type('id'))

# 删除键
# client.delete('name')
# 设置键的有效期
# client.expire('id',20)
# 移除有效期限
# client.persist('id')
# 显示有效期 -1 即长生不老
# print(client.ttl('id'))

list操作

# list列表操作

# 插入 左侧插入
client.lpush('kl', 1, 2, 3)
# 右侧插入
client.rpush('kl', 0, -1, -2)
# 查看索引范围内元素
# print(client.lrange('kl', 0, 2))
# 查看索引所在单个元素
# print(client.lindex('kl', 2))
# 删除键值
# 删除最左侧一个并返回
# print(client.lpop('kl'))
# 删除最右侧一个并返回
# client.rpop('kl')
# 切割 保留索引范围内元素,其余删除
# client.ltrim('kl',0,1)
# 获取 列表长度
# print(client.llen('kl'))

hash操作

# hash表
# hash 表的值是 一个键值对

# 设置 插入
# client.hset('hash','key1','value1')

# 插入多个 (将要被弃用,但能插入成功)
# client.hmset('hash',{'key2':'value2','key3':'value3'})

# 删除哈希表中的键

# client.hdel('hash','key3')

# 获取所有键和值
# print(client.hgetall('hash'))

# 获取哈希表中键值对的键
# print(client.hkeys('hash'))

# 获取哈希表结构中键值对的值

# print(client.hvals('hash'))

# 返回哈希表结构中键值对的个数

# print(client.hlen('hash'))

# 检查哈希键值对是否存在
# print(client.hexists('hash', 'key1'))

集合操作

# set集合  无序和不重复
# 添加成员  可以添加多个
# client.sadd('set',1,2,3,1,2,5)

# 删除成员  可以删除多个
# client.srem('set',2)

# 获取所有成员
print(client.smembers('set'))

# 查看成员是否在集合中 存在返回1 不存在返回0
print(client.sismember('set', 1))

# 获取成员总数量
print(client.scard('set'))

# 集合与集合之间的操作  交集,并集,差集
# 交集
print(client.sinter(['set', 'set2']))
# 并集
print(client.sunion(['set', 'set2']))
# 差集 返回  前面集合中有,后面集合中没有的元素
print(client.sdiff(['set2', 'set']))

zset操作


# zset 有序列表

# 添加成员
# client.zadd('zset',{'豪坤':10,'龙崽':20,'小宇':100,'aa':0,'bb':50})

# 删除成员
# client.zrem('zset','bb')

# 获取成员数量
print(client.zcard('zset'))

# 获取所有成员  按照分数(升序/降序) 索引范围内
# print(client.zrange('zset', 2, 3))

# 获取成员的权重值,(分数score)
print(client.zscore('zset', '小宇'))

# 返回指定范围内的成员数量
print(client.zcount('zset', 50, 100))

四,redis常见使用场景

redis 常与 mysql 结合使用:

因为redis的存储位置是内存,而mysql存储在磁盘,所以redis中数据的查询效率要远远高于mysql

核心思路:在查询数据时,先向redis查询,如果redis中查询不到,就向mysql中查询

如果mysql查询到了,返回数据,并把这条数据加到redis库中,方便了日后的查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值