redis

Redis简介

  • 百科:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
  • 说明:是一个非关系型数据库,经常会用作缓存,消息中间件的操作
  • 网址:www.redis.cn 中文网站
  • 优势(面试)
    • 存储既可以在内存中,也可以持久化存储
    • 数据类型非常丰富,字符串,哈希,列表,集合,有序集合等
  • 端口:6379 MYSQL 3306 HTTP:80 HTTPS:443 SSH:22 FTP:21

redis 安装

  • 命令安装:sudo apt-get install redis-server,版本比较低,客户端没有提示信息

  • 源码安装:可以选择哪一个版本

    https://www.cnblogs.com/mayyan/p/7717994.html
    
    
  • windows下面启动redis

    redis-server redis.windows.conf#启动redis服务器
    
  • 使用

    redis-cli.exe#启动客户端
    
  • 给大家推荐一个可视化工具

    redisplus
    

redis常用命令

  • 管理命令

    命令 说明
    ping 测试连接情况,默认回复一个pong
    exit/quit 退出客户端
    auth 身份认证
    config 配置命令,用来查看选项或者设置相关配置的
    info 查看redis服务器相关信息
    command 查看可用的命令
    select 选择库0-15,默认的是在0数据库下面
    flushdb 清空当前的库,慎用
    flushall 清空所有的库,特别慎用
    save 前台执行持久化的时候使用(会阻塞)
    bgsave 后台执行持久化操作(不会阻塞)
  • keys(键)

    命令 说明
    exists 判断指定的键是否存在,如果存在返回1,不存在返回0
    keys 查看指定格式的键,*表示模糊匹配
    del 删除指定的键
    ttl 查看指定的键剩余的有效时间,-1表示永久有效,-2表示键不存在,单位为秒
    expire 设置指定的有效时间,单位是秒(重要)
    persist 删除指定键的有效时间,之后变成永久的
    move 将指定的键移动到指定的库
    rename 修改指定键的名字
  • 字符串

    命令 说明
    set 设置键值对的数据
    get 通过键值获取值
    mset 设置多对的键值对
    mget 获取多对的键值对
    getset 设置键值对,并返回原来的值
    setex 设置键并设置过期时间
    append 键值对追加内容,如果没有的话就设置值
    strlen 返回指定字符串的长度
    incr 数字值加1
    decr 数字值减1
    incrby 数字值加上一个指定的数
    decrby 数字值减去一个指定的数

mysql想要在windows黑屏终端打开需要设置环境变量

  • 1.要找到mysql.exe的应用程序(也就是安装好的mysql),复制这个应用程序的路径

    例如(C:\Program Files\MySQL\MySQL Server 5.7\bin)

  • 2.右键-》系统属性-》高级系统设置-》环境变量-》系统变量-》path在后面追加上面复制的路径

  • 3.重新打开终端即可。

数据的结构的说明

  • 结构化数据:就是表数据

  • 半结构化数据:xml和json

  • 非结构化数据:图片,音频,视频

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

    命令 说明
    hset 设置单个字段
    hget 获取单个字段
    hmset 设置多个字段
    hmget 获取多个字段
    hgetall 获取所有字段
    hexsits 判断某个键是否有有某一个字段
    hlen 获取指定键的字段的数量
    hdel 删除指定键的指定字段
    hkeys 获取所有的字段名字
    hvals 获取所有字段的值
    hincrby 指定键的指定字段加上一个整数
    hincrbyfloat 指定键的指定字段加上一个浮点数
  • 列表(list)

    命令 说明
    lpush 从左边(头部)插入数据
    lpop 从左边(头部)弹出来数据
    lrange 获取指定区间的数据,0表示的是开头,-1表示的是非常大的范围
    lindex 根据下标获取数据
    llen 统计元素的个数
    lset 修改指定下标的值
    lrem 删除个数的指定值
    linsert 在指定元素前或者后插入数据
    ltrim 修剪列元素,保留开始到结束的区间,删除掉
    rpush 从右边插入数据
    rpop 从右边弹出来数据
  • set(集合) Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

    命令 说明
    sadd 向集合中添加成员
    smembers 查看集合中所有的的成员
    scard 统计集合中成员的数量
    sismember 判断某个成员是否在集合当中
    spop 随机弹出并删除指定个数的成员,默认是1
    srandmember 随机返回指定个数的元素,默认返回是1
    srem 删除指定的元素,可以一次性删除多个
    smove 将一个集合中的成员移动到另外一个集合中
    sinter 求交集
    sinterstore 求交集并保存到指定的集合中
    sdiff 求并集减去交集
    sdiffstore 求并集减去交集,并保存到指定的集合中
    sunion 求并集
    sunionstore 求并集并保存到指定的集合中
  • 有序集合(sorted set)

    • 说明:有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

      不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

      有序集合的成员是唯一的,但分数(score)却可以重复。

      命令 说明
      zadd 添加数据到有序集合
      zcard 统计集合中的数量
      zcount 统计指定区间范围的元素的个数
      zrange 返回指定索引范围的一个元素,升序排序
      zrevrange 返回指定索引范围的一个元素,降序排序
      zrangebyscore 返回指定分数范围的元素,并升序排序
      zrank 返回指定元素的索引,升序的
      zrevrank 返回指定元素的索引,降序的
      zrem 删除指定的元素可以一次性删除多个
      zscore 返指定元素的分数
  • 事务操作

    命令 说明
    multi 开启事务
    exec 执行事务
    discard 取消事务
  • f发布订阅:发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

    命令 说明
    subscribe 订阅一个频道或者多个频道
    unsubscribe 取消订阅频道
    publish 向指定的频道发送消息
    pubsub 查看活跃的频道信息

持久化存储

  • RDB:redis database 默认是开启的

    • 配置

      dbfilename dump.rdb      #保存数据的文件名字
      save 900   1           #更改了1个key,900s会自动保存
      save 300 10            #更改了10个key,300s   会自动保存     
      save 60 10000          #更改了10000个key,60s   会自动保存
      
    • 说明:

      • 服务器关闭以后会自动保存
      • 启动的时候数据会自动恢复

python链接redis数据库

re = redis.Redis(host="localhost",post=6370,password=123456)

你可能感兴趣的:(sql,redis)