欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis从下载到卸载--base for python

程序员文章站 2022-03-05 10:37:05
...

redis从下载到卸载


下载

# 确保有epel源后
yum -y install redis

概念

缓存服务器

数据库分类

  • 关系型和非关系型

  • 关系型:支持sql语句的,表和表之间有某种关系的(可以受约束)(数据工作在硬盘上)

    • mysql (开源)
    • oracal (付费)
    • postgresql (开源,适合在云上使用,开发模式(利用开发语言开发数据库的操作))
    • DB2 (老花钱了 ,需要放在unix上运行)
  • 非关系型数据库(nosql):每个数据和每个数据之间都是独立的。

    • 缓存数据库(数据工作在内存中)

      key-value 形式

      • readis

        values 支持类型不同

        • string(包含数字)
        • 数组
        • 集合
        • 有序集合
        • hash
      • memcache

        values 仅支持 string(包含数字)

    • 文档型数据库(数据在硬盘上)

      • mongodb

        {“user”:“shark”,“age”:18} ———json文档

      • ElasticSearch

        表——-索引(文档)

应用场景

  • (热数据)加速查询(将经常查询的数据放在redis上)

  • 没有付款的订单,可以设置过期时间(以秒为单位)

基本操作

# 登录redis
redis-cli
# 添加数据
# 在 Redis 中设置键值对,默认情况下,不存在则创建,存在则修改
# 参数:
ex,过期时间(秒)
px,过期时间(毫秒)
nx,假如设置为True,则只有 key 不存在时,当前 set 操作才执行
xx,假如设置为True,则只有 key 存在时,当前 set 操作才执行
set key value [EX] [PX] [NX|XX]

例子:
set name song ex 15
# 获取数据
get key

例子:
get name
# 查看有效时间 -1 永不过期  -2 已过期
ttl key

# 设置过期时间(不可以对已过期的key设置)
EXPIRE key 时间
# 删除
del key

连接数据库时可以使用的参数

redis从下载到卸载--base for python

配置文件

requirepass foobared# 配置文件的路径:/etc/redis.conf

# 设置监听地址
bind 127.0.0.1

# 设置监听端口
port 6379

# 设置密码登录
requirepass 【foobared】-----这个为密码

在python中操作redis

1.安装redis
pip3 install redis
2.连接
import redis
rs = redis.StrictRedis(host='192.168.1.37', #数据库所在IP,如果是本地则省略不写
                       port=6379,  # 端口
                       db=0,   # 指定数据库
                       decode_responses=True, #redis返回值默认是二进制bytes类型,设置为True可直接返回字符串,默认使用utf-8
                       password=密码)
3.set,get,ttl
rs.set(key,value,ex=1,px=1,nx=true,xx=true)

rs.set("name", "shark",ex=50)

rs.ttl("name")

rs.get("name")
4.hash操作

Redis 中的 Hash 数据,很想 Python 中嵌套的字典 :{"n1": {"k1": "v1", "k2", "v2"}}

#单个
rs.hset("n1","name","shark")  {"n1":{"name":"shark"}}
rs.get("n1","name")
> shark


# 多个
user_info = {"name": "shark", "age": 18}
rs.hmset("shark", user_info) {"shark":{"name": "shark", "age": 18}}
rs.hget("shark", "age")