zoukankan      html  css  js  c++  java
  • Redis安装,数据类型及常用命令

    安装

    - 可以使用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
    
    删除指定的一个或者多个元素
  • 相关阅读:
    SQL Server如何使用表变量
    Msys/MinGW与Cygwin/GCC(转)
    内存段划分:代码段、数据段、堆、栈
    Codeblocks+MinGW+wxWidgets搭建方法(转)
    Java GUI图形界面开发工具
    MinGW离线安装方法汇总(转)
    Linux系统的启动过程(转)
    详解VOLATILE在C++中的作用(转)
    C++虚函数与纯虚函数用法与区别(转)
    C++中值传递、指针传递和引用传递的比较 (转)
  • 原文地址:https://www.cnblogs.com/sun-10387834/p/12807616.html
Copyright © 2011-2022 走看看