redis使用笔记1

1. 下载安装

  • 下载
    • 方式:wget http://download.redis.io/releases/redis-5.0.5.tar.gz(2019-6-19最新);
  • 解压
    • tar -zxvf redis-5.0.5.tar.gz
  • 移动至/usr/local目录下
    • mv ./redis-5.0.5 /usr/local/redis
  • 进入目录
    • cd /usr/local/redis
    redis使用笔记1_第1张图片
    redis目录结构.png
  • 编译
    • make
    • make后报错如下:
      redis使用笔记1_第2张图片
      编译报错.png
    • 解决方式参考:https://blog.csdn.net/wlwlwlwl015/article/details/50444672
    • 解决make报错:安装gcc
      • yum -y install gcc automake autoconf libtool make
        redis使用笔记1_第3张图片
        安装gcc成功.png
    • 重新编译
      • make
        redis使用笔记1_第4张图片
        编译成功.png

        注意,如果编译失败则将redis文件夹删除重新解压后编译。
  • 编译测试
    • 如编译成功后提示,执行make test
    • make test报错


      redis使用笔记1_第5张图片
      编译测试报错.png
    • 解决make test报错
      • wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
      • tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
      • cd /usr/local/tcl8.6.1/unix/
      • ./configure
      • make
      • make install
    • 再次make test
      • 大部分[ok],有警告:


        redis使用笔记1_第6张图片
        编译测试结果.png

        (原因不清楚,继续往下= =!)

  • 安装
    • make install
    redis使用笔记1_第7张图片
    屏幕快照 2019-06-19 下午2.43.29.png

    成功!

    • redis-server redis服务器
    • redis-cli redis命令行客户端
    • redis-benchmark redis性能测试工具
    • redis-check-aof AOF文件修复工具
    • redis-check-rdb RDB文件检索工具

2. 配置

  • 复制配置文件到/etc/redis目录
    cp /usr/local/redis/redis.conf /etc/redis
  • 配置文件说明
    参考:https://www.cnblogs.com/tmpt/p/redis_conf_detail_annotation.html;
  • 主要配置
    • bind 127.0.0.1 # 绑定ip,如果需要远程访问,可注释,或绑定多个真实ip;
    • port 6379 # 端口;
    • daemonize yes # 以守护进程运行,不会在命令行阻塞,类似于服务;
    • dbfilename dump.rdb # 数据文件;
    • dir /var/lib/redis # 数据文件存储路径;
    • logfile /var/log/redis/redis-server.log # 日志文件;
    • database 16 # 数据库,默认16个;
    • slaveof # 主从配置时使用;

3. 主要命令

  • 服务器端:
    • 启动:
      1. cd /usr/local/bin;./redis-server &
      2. redis-server /etc/redis/redis.conf # 加载指定的配置文件启动
    • 停止:

      kill -9 pid

  • 客户端:
    • 启动:

      redis-cli

    • 测试:

      ping

    • 切换数据库:

      select n # 默认是0,即第一个数据库

4. 操作

redis数据结构为key-value形式,key为字符串,不可重复。值共有五种类型:

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

4.1 键命令

  • 查找键
    • keys pattern # pattren支持正则表达式
  • 查看键是否存在
    • exists key # 返回1表示在,0表示不在
  • 查看键类型
    • type key # 查看值得类型
  • 删除键
    • del key1 key2... # 删除键
  • 设置键过期时间
    • expire key seconds # 设置小于等于0的数相当于删除键
  • 查看键有效时间
    • ttl key # -1表示永久有效,但expire key -1只能删除键,不能当成是设置永久有效,可以通过set key value来让有有效时间的key永久有效。setex key seconds value中seconds只能为正整数

4.2 字符串操作

redis中字符串类型value最多可以容纳512M大小数据的长度。
注意下面命令中key和value不加引号也是可以的。

  • 添加/修改
    • set key value # 键没有则添加,键存在则修改
    • setex key seconds value # 设置过期时间,单位:秒
    • mset key1 value1 key2 value2 ... # 一次设置多个键值
    • append key value # 在key对应原value后面拼加新的字符串作为新value。如果key不存在,则添加key-value
  • 获取
    • get key
    • mget key1 key2 ... # 根据多个键获取多个值

4.3 hash操作(值类型为string)

  • 添加/修改
    • hset key field value # 设置单个属性
    • hset/hmset key field1 value1 field2 value2... # 设置多个属性
  • 获取
    • hkeys key # 获取指定键所有属性
    • hget key field # 获取单个属性的值
    • hmget key field1 field2... # 获取多个属性的值,注意获取多个时只能hmget,hget不行
    • havls key # 获取所有属性的值
  • 删除
    • del key # 删除hash键
    • hdel key field1 field2... # 删除key的多个属性

4.4 list操作(元素类型为string)

按照插入顺序排序

  • 添加
    • lpush key value1 value2 ... # 在左侧插入数据
    • rpush key value1 value2 ... # 在右侧插入数据
    • linsert key before|after value value1, value2... # 在元素value左/右插入元素
  • 获取
    • lrange key start stop # 获取从start到stop索引的所有元素,索引可以为负数,-1表示最后一个元素
  • 设置
    • lset key index value # 设置指定索引位置的元素
  • 删除
    • lrem key count value # 将列表前count次出现的value删除,count>0 从头到尾删除,count<0 从尾到头删除,count=0 删除全部

4.5 set操作(元素类型为string)

set类型没有修改操作
元素具有唯一性,不重复(重复的加不进去)

  • 添加
    • sadd key value1 value2
  • 获取
    • smembers key
  • 删除
    • srem key value1 # 删除指定元素

4.6 zset操作(元素类型为string)

元素唯一,不重复,有序

  • 添加
    • zadd key score1 value1, score2 value2 ... # score表示权重,排序规则用
  • 获取
    • zrange key start stop # 获取指定范围内的元素
    • zrangebyscore key min max # 返回score值在min到max之间的元素
    • zscore key member # 返回元素member中的score值
  • 删除
    • zrem key member1 member2 ... # 删除指定元素
    • zremrangebyscore key min max... # 删除权重在min到max直接的元素

你可能感兴趣的:(redis使用笔记1)