一文入门redis数据库

[复制链接]
发表于 2026-2-3 12:20:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Redis 是一个开源的内存数据布局存储体系,通常用于缓存和数据存储。它支持多种数据布局,如字符串、哈希、列表、聚集、有序聚集等,而且提供了丰富的下令来利用这些数据布局。Redis 的特性使其非常恰当用作数据库、缓存、消息署理等。
redis 是一个内存数据库,存放了诸多键与值
一,redis数据库的特性


  •         内存存储: Redis 将数据存储在内存中,提供了非常快的数据访问速率。可以选择将数据长期化到磁盘以防止数据丢失 
  •         长期化:

    • 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利用
  1. string字符串操作
  2. # 设置键值对,插入
  3. # client.set('id',101)
  4. # # 插入多个
  5. # client.mset({'name':'小龙','age':21})
  6. # 查询键的值
  7. # print(client.get('id'))
  8. # 查询多个键的值
  9. # print(client.mget(['id', 'name', 'age']))
  10. # 设置插入键值对时,给予键的存活时间
  11. # client.set('nothing',20,ex= 50)
  12. # 赋予/修改键的存活时间
  13. # client.setex('id', 5,101 )
  14. # print(client.ttl('id'))
  15. # 增加键值
  16. # client.incrby('id',amount=10)
  17. # 减少键值
  18. # client.decrby()
  19. # 对键的操作
  20. # 获取键的类型
  21. # print(client.type('id'))
  22. # 删除键
  23. # client.delete('name')
  24. # 设置键的有效期
  25. # client.expire('id',20)
  26. # 移除有效期限
  27. # client.persist('id')
  28. # 显示有效期 -1 即长生不老
  29. # print(client.ttl('id'))
复制代码
list利用
  1. # list列表操作
  2. # 插入 左侧插入
  3. client.lpush('kl', 1, 2, 3)
  4. # 右侧插入
  5. client.rpush('kl', 0, -1, -2)
  6. # 查看索引范围内元素
  7. # print(client.lrange('kl', 0, 2))
  8. # 查看索引所在单个元素
  9. # print(client.lindex('kl', 2))
  10. # 删除键值
  11. # 删除最左侧一个并返回
  12. # print(client.lpop('kl'))
  13. # 删除最右侧一个并返回
  14. # client.rpop('kl')
  15. # 切割 保留索引范围内元素,其余删除
  16. # client.ltrim('kl',0,1)
  17. # 获取 列表长度
  18. # print(client.llen('kl'))
复制代码
hash利用
  1. # hash表
  2. # hash 表的值是 一个键值对
  3. # 设置 插入
  4. # client.hset('hash','key1','value1')
  5. # 插入多个 (将要被弃用,但能插入成功)
  6. # client.hmset('hash',{'key2':'value2','key3':'value3'})
  7. # 删除哈希表中的键
  8. # client.hdel('hash','key3')
  9. # 获取所有键和值
  10. # print(client.hgetall('hash'))
  11. # 获取哈希表中键值对的键
  12. # print(client.hkeys('hash'))
  13. # 获取哈希表结构中键值对的值
  14. # print(client.hvals('hash'))
  15. # 返回哈希表结构中键值对的个数
  16. # print(client.hlen('hash'))
  17. # 检查哈希键值对是否存在
  18. # print(client.hexists('hash', 'key1'))
复制代码
聚集利用
  1. # set集合  无序和不重复
  2. # 添加成员  可以添加多个
  3. # client.sadd('set',1,2,3,1,2,5)
  4. # 删除成员  可以删除多个
  5. # client.srem('set',2)
  6. # 获取所有成员
  7. print(client.smembers('set'))
  8. # 查看成员是否在集合中 存在返回1 不存在返回0
  9. print(client.sismember('set', 1))
  10. # 获取成员总数量
  11. print(client.scard('set'))
  12. # 集合与集合之间的操作  交集,并集,差集
  13. # 交集
  14. print(client.sinter(['set', 'set2']))
  15. # 并集
  16. print(client.sunion(['set', 'set2']))
  17. # 差集 返回  前面集合中有,后面集合中没有的元素
  18. print(client.sdiff(['set2', 'set']))
复制代码
zset利用
  1. # zset 有序列表
  2. # 添加成员
  3. # client.zadd('zset',{'豪坤':10,'龙崽':20,'小宇':100,'aa':0,'bb':50})
  4. # 删除成员
  5. # client.zrem('zset','bb')
  6. # 获取成员数量
  7. print(client.zcard('zset'))
  8. # 获取所有成员  按照分数(升序/降序) 索引范围内
  9. # print(client.zrange('zset', 2, 3))
  10. # 获取成员的权重值,(分数score)
  11. print(client.zscore('zset', '小宇'))
  12. # 返回指定范围内的成员数量
  13. print(client.zcount('zset', 50, 100))
复制代码
四,redis常见利用场景

redis 常与 mysql 连合利用:
由于redis的存储位置是内存,而mysql存储在磁盘,以是redis中数据的查询服从要远远高于mysql
核心思绪:在查询数据时,先向redis查询,假如redis中查询不到,就向mysql中查询
假如mysql查询到了,返回数据,并把这条数据加到redis库中,方便了日后的查询

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表