zoukankan      html  css  js  c++  java
  • Redis操作

    Redis是一个高性能的key:value的数据库

    1. 什么是nosql?

    • 一种新出现的数据库, 不能使用SQL语句进行增删改查
    • 非关系数据库

    nosql和SQL数据库的比较?

    • sql 适用于关系复杂的数据进行查询, nosql则反之
    • sql 对事务的支持非常完善, nosql不支持事务
    • 两者之间配合使用

    1.1 Redis的特点

    • 支持数据的持久化,可以将内存中的数据保存 在磁盘中,重启的时候可以再次加载进行使用
    • 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
    • 支持数据的备份,即master-slave模式的数据备份

    1.2 Redis的优势

    • 性能极高(读写速度快)
    • 丰富的数据类型
      • Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型
    • 原子性
    • 丰富的特性
      • 支持 publish/subscribe, 通知, key 过期等等

    2.Redis 的安装

    • 1.下载
    • 2.解压
      • tar xzf redis-4.0.9.tar.gz
    • 3.移动
      • sudo mv ./redis-4.0.9 /usr/local/redis/
    • 4.进入Redis的目录
      • cd /usr/local/redis/
    • 5.生成
      • sudo make
    • 6.测试
      • sudo make test
    • 7安装,将redis的命令安装到/usr/local/bin/⽬录
      • sudo make instal
    • 8.安装完成后,我们进入目录/usr/local/bin中查看
      • cd /usr/local/bin
    • ls -all
    • redis-server redis服务器
    • redis-cli redis命令行客户端
    • redis-benchmark redis性能测试工具
    • redis-check-aof AOF文件修复工具
    • redis-check-rdb RDB文件检索工具
    • 9.配置文件,移动到/etc/⽬录下
      • 配置⽂件⽬录为/usr/local/redis/redis.conf
      • sudo cp /usr/local/redis/redis.conf /etc/redis/

    3. Redis的配置

    • Redis的配置信息在/etc/redis/redis.conf下。
    • 查看
      • sudo vi /etc/redis/redis.conf
    • 核心配置
      • 绑定ip
        • bind 127.0.0.1
      • 端口
        • 默认是6379
      • 是否以守护进程运行
        • daemonize yes
      • 数据文件
        • dbfilename dump.rdb
      • 数据文件存储路径
        • dir /var/lib/redis
      • 日志文件
        • logfile "/var/log/redis/redis-server.log"
      • 数据库,默认有16个, 0~ 15
        • database 15
      • 主从复制,类似于双机备份
        • slaveof

    4. Redis的服务端和客户端的连接

    4.1 服务器端

    命令:redis-server
    查看帮助文档
    • redis-server --help
    查看redis服务器进程
    • ps aux | grep redis
    杀死redis服务器
    • sudo kill -9 pid
    指定加载的配置文件
    • sudo redis-server /etc/redis/redis.conf

    4.2 客户端

    命令
    • redis-cli
    查看帮助文档
    • redis-cli --help
    连接redis
    • redis-cli (-h ip地址)默认是127.0.0.1
    运行测试命令
    • ping
    切换数据库
    • select 0-15

    5. Redis的数据库操作

    5.1数据结构

    • redis是key-value的数据结构,每条数据都是⼀个键值对
    • 键的类型是字符串

      注意:键不能重复

    5.2四种操作

    • 保存
    • 修改
    • 获取
    • 删除

    5.3 值的类型分为五种:

    • 字符串string
    • 哈希hash
    • 列表list
    • 集合set
    • 有序集合zset

    5.4 键命令

    查找键,参数支持正则表达式
    • 格式:keys (pattern正则表达式)
    • keys * # 查看所有
    判断键是否存在,如果存在返回1,不存在返回0
    • 格式:exists key1
    查看键对应的value的类型
    • 格式:type key
    删除键及对应的值
    • 格式:del key1 key2....
    设置过期时间,以秒为单位
    • 格式:expire key seconds
    查看有效时间,以秒为单位
    • 格式:ttl key

    6. Redis的具体操作

    6.1Redis的string操作

    保存
    设置键值
    格式:set key value
    设置键值及过期时间,以秒为单位
    格式:setex key seconds value
    设置多个键值
    格式:mset key1 value1 key2 value2 ...
    追加值
    格式:append key value
    获取
    获取单个,根据键获取值,如果不存在此键则返回nil
    格式:get key
    根据多个键获取多个值
    格式:mget key1 key2...

    6.2Redis的hash操作

     
    注意点
    hash⽤于存储对象,对象的结构为属性、值
    值的类型为string
    增加、修改
    设置单个属性
    格式:hset key field value
    设置多个属性
    格式:hmset key field1 value1 field2 value2 ...
    获取
    获取指定键所有的属性
    格式:hkeys key
    获取一个属性的值
    格式:hget key field
    注意点:一个是获取键的属性,一个是获取属性的值,获取对象不一样
    获取多个属性的值
    格式:hmget key field1 field2 ...
    获取所有属性的值
    格式:hvals key
    删除
    删除整个hash键及值,使用del命令
    删除属性,属性对应的值会被一起删除
    格式:hdel key field1 field2 ...

    6.3Redis的list操作

     
    注意点
    列表的元素类型为string
    按照插入顺序排序
    增加
    在左侧插入数据
    格式:lpush key value1 value2 ...
    在右侧插入数据
    格式:rpush key value1 value2 ...
    在指定元素的前或后插入新元素
    格式:linsert key before或after 现有元素 新元素
    获取
    格式:lrange key start stop
    start、stop为元素的下标索引
    索引从左侧开始,第⼀个元素为0
    索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
    注意点:获取只能是lrange没有rrange
    设置指定索引位置的元素值
    格式:lset key index value
    删除
    格式:lrem key count value
    count > 0: 从头往尾移除
    count < 0: 从尾往头移除
    count = 0: 移除所有

    6.4Redis的set操作

     
    注意点
    无序集合
    元素为string类型
    元素具有唯一性,不重复
    说明:对于集合没有修改操作
    增加
    格式:sadd key member1 member2 ...
    获取
    返回所有的元素
    格式:smembers key
    删除
    删除指定元素
    格式:srem key member1...

    6.5Redis的zset操作

     
    注意点
    sorted set,有序集合
    元素为string类型
    元素具有唯一性,不重复
    每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
    说明:没有修改操作
    增加
    格式:zadd key score1 member1 score2 member2 ...
    获取
    格式:zrange key start stop
    start、stop为元素的下标索引
    索引从左侧开始,第一个元素为0
    索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
    返回score值在min和max之间的成员
    格式:zrangebyscore key min max
    返回成员member的score值
    格式:zscore key member
    删除
    删除指定元素
    格式:zrem key member1 member2 ...
    删除权重在指定范围的元素
    格式:zremrangebyscore key min max

    7.Redis与Python交互

     
    StrictRedis对象,与redis服务器建立连接
    清除redis所有数据
    flushall
    只删除本数据库的数据
    flushdb

    8.Redis相关配置

    8.1 Redis的主从

    8.1.1配置流程
     
    配置主服务器
    绑定ip
    位置:etc/redis/redis.conf文件
    重启redis服务
    sudo service redis stop
    sudo redis-server redis.conf
    课件中没有sudo
    配置从服务器
    绑定ip
    sudo cp redis.conf ./slave.conf
    sudo vi slave.conf
    bind 服务器ip
    slaveof 服务器ip 6379
    绑定端口
    port 6378(端口号不要和6379冲突就好)
    启动redis服务:sudo redis-server slave.conf
    8.1.2查看主从关系
     
    redis-cli -h 绑定的ip info Replication
    8.1.3数据操作
     
    在主服务器上写入
    从服务器上读
    启动服务器命令
    redis-cli -h ip地址 -p 端口

    8.2集群的配置文件

     
    port 7000 #端口
    bind 172.16.179.130 #绑定端口
    daemonize yes #redis在后台运行
    pidfile 7000.pid #显示进行的pid文件
    cluster-enabled yes #开启集群功能
    cluster-config-file 7000_node.conf #集群配置文件
    cluster-node-timeout 15000 #集群中的节点能够失联的最大时间
    appendonly yes #设置appendonly.aof,防止数据丢失

    8.3集群的搭建

    注意点: 必须要3个或以上的主节点,否则在创建集群时会失败,并且当存 活的主节点数⼩于总节点数的⼀半时,整个集群就⽆法提供服务了

    8.4集群Python交互

    依赖包
     
    pip install redis-py-cluster
    构建StrictRedisCluster对象
     
  • 相关阅读:
    Next Permutation
    SpringMVC配置信息
    Servlet详解(转载)
    Length of Last Word
    Maximum Subarray**
    Divide Two Integers
    Generate Parentheses***
    http解码-2
    编码-1
    扫描工具对比
  • 原文地址:https://www.cnblogs.com/liudemeng/p/9593912.html
Copyright © 2011-2022 走看看