redis_order

redis 命令

  • Redis:REmote Dictionary Server
  • Server(Redis)远程字典服务器,为网站提供高速缓存服务

网站优化两大定律

1.缓存 —– 用空间换时间(redis/Memcached)

2.削峰 —— 能推迟的事情都不要马上做(RabbitMQ/ RocketMQ)

信息隐藏:

  信息隐藏是指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的

启动Redis服务器步骤(谨慎):
1.修改Redis配置文件redis.conf(安装文件目录下)
    cp redis-4.0.11/redis.conf redis.conf
    # redis-server --post -- requirepass   ----- 也可以修改配置
    vim redis.conf
    bind 内网地址
    requirepass 密码
    appendonly yes
2.启动服务器
    redis-server redis.conf(配置文件) > redis.log &
3.启动客户端
    redis-cli -h ip地址(私用ip地址)
4.验证身份
    auth 密码
5.停止服务器
   1.kill 进程号
   2.把进程放到前台,Ctrl c
   3.客户端>shutdown
6.测试连接输入ping 回应PONG表示连接成功
操作命令 ——- http://redisdoc.com/
操作:
    keys *  查看所有键
    select 1切换到1号数据库
    select 15切换到15号数据库
    flushall 删掉所有数据库的所有数据
    flushdb 删掉当前一个数据库的数据删掉
    save 保存数据
    bgsave 后台保存
    set key value ex 存活时间 :设置键值对并设置存活时间
    ttl key:查看数据的存活时间(ttl time to live),如果看到-1说明这个数据永不超时,如果-2说明没这个数据
    expire key 时间: 设置已有键的存活时间
    ince key:增加值
    decr key:减少值

基准测试:
    redis-benchmark -h ip -a 密码    测试redis性能


    LBS:Location-Base Service
字符串:
    setnx:如果不存在才赋值
    setex:在设置键值对的时候同时设置存活时间
    mset:一次放很多键值对
    mget:一次获取多个键值对

哈希表(hash)
    hset:设置hash类型
    hget:获取值 hget key filed
    hgetall:获取对应key的所有值(hgetall key)
    hmget:一次性获取多个值
    hmset:一次性赋值多个
        hmset stu1 id 101 name baiyuan age 12 gender male
    hdel:删除哈希数据
        hdel stu1 age
    hexists:判断对应键是否存在某字典
        hexists stu1 mile
    hlen:统计键有多少字段
    hkey:取出对应键的所有字段
    hvals:取出对应键的所有值
    hscan:遍历键值对

列表:(List)
    lpush:向列表放原始(从左边开始放)
        lpush list1 1 2 3 4 5

    lpop:从左边开始取
    rpop:从右边开始取
    rpush:(从右边开始放)
    lrange:指定范围取元素()
        lrange list1 start end
        lrange list1 0 -1
    lset:修改列表指定下标的值
        lset list 1 1000
    blpop:如果列表没东西,且时间未超时就阻塞,有东西拿走,超时就结束(从左边取)
        blpop list1 20
    brpop:如果列表没东西,且时间未超时就阻塞,有东西拿走,超时就结束(从右边取)
    brpoplpush:从右边取一个元素,并把这个元素放到另一个列表的左边(阻塞式)

集合(Set):
    sadd:向集合添加元素
        sadd set1 10 20 10 20 30
    smebers:查看集合中的元素    
        smerbers set1
    sinter:交集
        sinter 集合1 集合2
    sunion:并集
        sunion 集合1 集合2
    sdiff:差集
        sdiff 集合1 集合2
    sismenber:判断元素在不在集合中
        sismenber 集合 元素
    spop:从集合中取出一个元素
    srandmenber:从集合中随机返回一个元素(实际没有拿走)
    srem:移除集合中的一个或者多个元素,如果不存在就忽略

浮点数表示法的问题
    有序集合(SortedSet)
    zadd:添加有序集合
        zadd 集合名 值 元素
    zrange:查看元素
        zrange zs1 0 -1
        zrange zs1 0 -1 withscores 显示元素的时候把分数值也显示出来
    zrangebyscore:指定搜索范围来搜索数据
        zrangebyscore zs1 10 20
    zrank:查看元素的排名
        zrank zs1 apple
    zreverange:从大到小排序查询
        zreverange zs1

type(值):查看对应值的类型

事务:
mult开始事务
exec:执行
discard:放弃执行


服务器:
bgsave:后台保存
dbsize: 查看数据库有多少键
slaveof:把redis设置成那个的奴隶(主从复制,读写分离)
shutdown:关闭服务器
info:查看服务器相关信息

redis-check-aof -fix appendonly.aof    修复aof的文件
  • type —– 查看键的类型
  • setnx —– 设置已存在键的值
  • sentex —- 设置键值对的同时设置时间

Hash ——- 保存对象

  • hset —– 创建key
  • hget —– 取出key
  • hgetall —- 取出key的全部属性
  • hmset ——- 创建key并设置多个属性
  • hmget ——- 取出key的多个属性
  • hdel —– 删除key的一个或多个属性
  • hexists —– 查看key是否存在
  • hlen —– 统计key对应多少个字段
  • hkeys ——- 返回key中的所有的域
  • hscan ——- 遍历key及域(遍历字典的键和值)

List

lset list1 0 name

  • lset —— 给列表1中的下标为0的元素赋值为name
  • lpop —— 取出列表的头元素(左边第一个)元素
  • rpop —— 取出列表的尾元素(右边第一个)元素
  • lpush —— 在表头插入一个或多个值
  • rpush —— 在表尾插入一个或多个值
  • lrange —— 取出指定的元素
  • lset —— 修改原有列表的特定元素值
  • blpop —— 阻塞式从左边取出元素(有元素,不阻塞,没有元素,等待输入元素,然后取出)
  • blpop —— 阻塞式从右边取出元素(有元素,不阻塞,没有元素,等待输入元素,然后取出)
  • rpoplpush A B —— 从A中取出,从B中左边存入

Set(集合)

  • sadd —– 添加一个或多个元素
  • srem —– 删除一个或多个指定的元素
  • scard —— 查看集合中有多少个元素
  • smembers —– 查看集合的元素
  • sinter —— 查看两个集合的交集
  • sunion —– 查看两个集合的并集
  • sdiff —— 查看两个集合的差集
  • sismember —— 查看一个集合中是否存在一个给定的元素
  • spop —– 取出一个随机元素(不同)
  • srandmember —— 取出一个随机元素(可能相同)

Sortedset(有序集合)

  • zadd —– 添加元素
  • zrange —– 查看元素(排好序的)
  • zrangebyscore —- 指定范围查看
  • zrank —– 排名(从0开始排的)
  • zrem —– 删除
  • zrevrange —— 倒序排列

复制:

主从复制(读写分离)修改内容:
  • master不用修改配置
  • slave修改两条配置
    • slaveof master的IP地址 master的端口
    • masterrauth master的口令
  • info replication ——- 查看是否有奴隶
  • info ——- 查看服务器信息
  • ps -ef | grep deris | grep -v grep | awk ‘{print $2}’ | xargs kill ——- 杀掉所有的奴隶
  • slaveof no one ——— 拒绝当奴隶
故障处理

配置哨兵(sentinel.conf)

  • 修改sentinel.conf配置文件
    • 修改69行的监视窗口 跟上票数
    • 98行master的死亡时间设置
      • 在规定的时间回来了,还是master,没回来就重选
    • 131行的意思:master在3分钟内回来,也只能当奴隶,没回来,就直接杀死
  • redis-server sentinel.conf –sentinel ——– 启动哨兵文件

MySQL / MongoDB

  • 热(点)数据 —- 经常被访问的数据

  • redis放的应该是体量不大的热点数据


  转载请注明: 微笑看你 redis_order

 上一篇
pymysql pymysql
learninsert/update/delete import pymysql def main(): no = int(input('部门编号:')) name = input('部门名称:') loc =
2018-08-22
下一篇 
数据库 数据库
​ 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。 —– 从删库,到跑路额! 数据库 —– database - 数
2018-08-15
  目录