当前位置 博文首页 > 文章内容

    Linux10

    作者: 栏目:未分类 时间:2020-09-25 9:00:57

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    nosql not only sql

    用户画像:

    热点数据:经常被使用的数据

    mysql

    安装

    • 可以使用yum 安装,要先配置epel源

      yum install -y redis
      
    • 可以编译安装

      wget http://download.redis.io/releases/redis-5.0.5.tar.gz
      tar xf redis-5.0.5.tar.gz
      cd redis-5.0.5/
      make
      

    redis 可执行文件

    redis-benchmark  #性能测试
    redis-check-aof  # 检查修复aof文件
    redis-check-rdb  # 检查修复rdb文件
    redis-cli        # redis的客户端
    redis-sentinel   # redis的集群
    redis-server     # redis的服务端
    redis-trib.rb     #集群管理
    

    启动redis

    ./src/redis-server 默认端口是6379,默认启动会占用终端
    

    性能测试

    ./src/redis-benchmark -q
    PING_INLINE: 73855.24 requests per second
    PING_BULK: 73800.73 requests per second
    SET: 74074.07 requests per second
    GET: 72833.21 requests per second
    INCR: 73637.70 requests per second
    LPUSH: 73855.24 requests per second
    RPUSH: 70175.44 requests per second
    LPOP: 72202.16 requests per second
    RPOP: 74183.98 requests per second
    SADD: 74962.52 requests per second
    HSET: 75642.96 requests per second
    SPOP: 73746.31 requests per second
    LPUSH (needed to benchmark LRANGE): 74850.30 requests per second
    LRANGE_100 (first 100 elements): 48379.30 requests per second
    LRANGE_300 (first 300 elements): 24172.11 requests per second
    LRANGE_500 (first 450 elements): 18670.65 requests per second
    LRANGE_600 (first 600 elements): 15384.62 requests per second
    MSET (10 keys): 78186.08 requests per second
    默认是100000,50个同时发起连接
    

    连接

    ./src/redis-cli
    -h ip地址
    -p 端口
    -s 套接字
    -a 密码  
    -n 指定redis的库
    redis的命令是不区分大小写
    

    redis的数据类型

    • string
    • hash
    • list
    • set
    • zset

    命令相关

    ping

    用来测试redis是否连通,返回值是pong

    info

    获取系统的信息

    echo

    打印内容,测试使用

    quit

    退出

    select

    切换redis的库,总共有16个,0-15

    del

    删除指定的一个或者多个key,不存在的key忽略

    exists

    判断key 是否存在,存在是1,不存在是0

    expire key seconds

    给指定的key设置存活时间,当key过期以后,就自动删除

    ttl

    查看key的存活时间,-2 key不存在 -1 永久生效

    keys pattern

    查找所有符合pattern 的key,支持通配符

    move key db

    移动当前的key到指定的db里面,成功返回1,失败返回0

    pexpire key 毫秒

    给一个key 设置过期时间,单位是毫秒

    pttl key

    查看key的存活时间,但是为毫秒

    randromkey

    随机获取一个key,但是不删除,如果数据库为空,则返回空

    rename

    重命名key,如果源key不存在,则报错,如果目标key存在,则覆盖

    renamenx

    重命名key,如果源key不存在,则报错,如果目标key存在,则不变

    type

    查看key所存储的数据类型,如果没有这个key,则返回none

    string

    set

    设置key value

    如果key存在,则覆盖,不存在,则新建

    ex second 设置key的存活时间,单位是秒

    px 毫秒 设置key的存活时间,单位是毫秒

    nx 如果键不存在,则新建,如果存在,则返回nil

    xx 只有键存在,才能操作

    get

    获取key对应的value,只能获取一个,如果key存在,则返回值,如果key不存在,则返回nil

    mset

    批量创建key vlaue对应关系,会覆盖已存在的key

    mget

    批量获取key,如果不存在,则返回nil

    getset

    给指定的key设置新value,并返回原来的value,如果key不存在,则返回nil

    strlen

    返回value的长度

    append

    如果key存在,则追加,如果key不存在,则新建

    incr

    将key中存在的数加1,只能对数字有效

    decr

    将key中存在的数值减1,只能对数字有效

    incrby

    将key中存在的数值指定增加多少,只对数字有效

    decrby

    将key中存在的数值减少指定的值,只能对数字有效

    getrange

    切片,同python类似,不能使用步长

    incrbyfloat(默认保留17位)

    将key中存在的数值增加指定的浮点数

    list

    lpush

    将一个或者多个value插入到列表的头部

    lpop

    移除并返回列表key的头一个元素

    lrange

    查看列表指定的元素,全部显示是0,-1

    rpush

    将一个或者多个value插入到列表的尾部(最后边)

    rpop

    删除尾部的值

    rpushx

    将value插入到key的尾部,key必须存在才可以

    lpushx

    将value插入到key的头部,key必须存在才可以

    lindex

    从表头开始,获取下标为index的value

    linsert

    将value插入到key指定的元素前或者后

    before 前

    after 后

    如果value不存在,则不操作

    llen

    获取列表长度

    lrem

    删除列表中的value

    • count > 0 从表头往表尾的方向查找,删除指定的个数
    • count = 0 全部删除
    • count < 0 从表尾的位置往表头的方向查找,删除指定的个数

    lset

    替换指定的索引位置的value,如果索引超出范围,则报错

    ltrim

    列表的切片

    hash

    {'db':{"redis":'redis.conf',"mysql':'my.cnf',"nginx":"nginx.conf"}}

    hset

    给hash增加key value值

    hlen

    获取hash的长度

    hget

    获取某个hash里面key的value

    hgetall

    获取所有的键值对

    hmset

    批量增加键值对

    hmget

    批量获取键值对

    hsetnx

    给指定的hash增加键值对,如果原来的field存在,则操作无效,如果不存在,则新增

    hkeys

    获取hash表中所有的field

    hvals

    获取hash表中所有的value

    hdel

    删除hash表中的一个或者多个field-value

    hexists

    判断hash表中的field是否存在,如果存在,则为1,不存在则为0

    hincrby

    给hash表中的field增加指定的数值,只限于数字

    hincrbyfloat

    给hash表中的field增加指定的浮点,只限于数字

    set

    sadd

    给集合添加值,如果值存在,则什么都不操作,如果值不存在,则添加

    SMEMBERS

    获取集合所有的成员

    scard

    获取集合的个数

    sdiff

    获取两个集合的差集,前面存在,但是后面不存在的

    sinter

    获取两个集合的交集

    sunion

    获取两个集合的并集

    SISMEMBER

    判断元素是否在集合中,如果存在,则为1,如果不存在则为0

    smove

    将指定的元素从一个集合移动到另外一个集合中,如果源集合存在,则移动,如果不存在,则忽略,如果目标集合存在,直接移动,如果目标集合不存在,则新建集合并移动

    spop

    随机删除指定个数的元素,并把删除的元素打印出来

    SRANDMEMBER

    随机获取指定个数的元素

    • 默认随机获取一个
    • 如果count > 0,
      • 如果count大于集合的总数的话,则全部取出
      • 如果count小于集合总数的话,则随机取出count个
    • 如果count<0,则随机count的绝对值次取出值

    srem

    删除指定的一个或者多个元素