• redis 下载(docker 安装) 和命令

拉取 redis 镜像(alpine 是经典版)

docker  pull  redis:4-alpine

把本机的6379映射到虚拟的6379

docker run -it -p 6379:6379 --name redis(名字) redis:4-alpine(下载的镜像名)

进入redis

docker exec -it redis /bin/sh

与redis进行交互

redis-cli

一. Redis特性

  1. 速度快

    基于内存, C语言实现, 单线程架构, 集性能和优雅于一身的代码

  2. 基于键值对的数据结构服务器

    REmote DIctionary Server. 值可以是字符串/哈希/列表/集合/有序集合, Bitmap等等
  1. 丰富的功能

    键过期功能. 发布-订阅功能(实现消息系统), Lua脚本, 简单的事务, 流水线(Pipeline)

  2. 简单稳定

    代码少, 早期版本2万行. 3.0版本以后加入集群功能, 5万行. 单线程模型

  3. 客户端语言多

  4. 持久化

    (RDB和AOF方式)存放到硬盘中

  5. 主从复制

  6. 高可用和分布式

二. Redis使用场景

  1. 缓存/session

  2. 排行榜系统

  3. 计数器应用

    视频的播放/浏览次数. 并发量太大, 对传统数据库挑战较大

  4. 社交网络

    赞/踩, 粉丝, 共同好友/喜好等等杂的数据

  5. 消息队列系统

    主要用于业务解耦

三. Redis安装

使用docker安装redis

四. Redis Shell

  1. redis-server 启动Redis

    默认端口6379, 使用--port xxx指定端口号
    指定配置文件

  2. redis-cli 命令行接口

五. Redis使用

1. 全局命令

keys *        查看所有key

dbsize         key的数量

exists +key      判断存在几个

del  +key           删除几条

expire +key +seconds    设置过期时间

type +key                查看一个可以对应的value类型

set +key +value +ex      添加时可同时设置他的过期时间 ex填过期时间

get +key          获取一个key的值

2. 数据结构和内部编码

2.1 数据结构

  1. string 字符串
    key 都是字符串类型, 而且其他几种数据结构都是在字符串类型基础上构建的.
    
    字符串类型的值实际上可以是简单或复杂的字符串(JSON/XML), 数字, 甚至是二进制(图片, 音频, 视频, 最大512M)

    mset, 批量设置值, 可以提高开发效率
    mget, 批量获取值
    
    计数, 
    incr key, ++      设置自增 (只有value是数字时)     例;  incer like:news:1001 有人喜欢就加一
    decr key, --      设置自减
    incrby key xx,    设置每次加几个
    decrby key xx     设置每次减几个
开发中合理的key名, 业务名:对象名:id:属性
  1. hash 哈希
    hset key field value    存入键值对(一个key 可存入多个key value分多次存)
    hget key field          取出键值对 

    hdel key field          删除摸个键值对属性
    hlen key                查看可以有多少属性
    hmget key field         批量获取key的多个属性
    hmset key field value   批量设置key的多个属性的键值对
    hexists key field       判断key的属性是否存在
    hkeys key               列出这个key 所有属性的名 
    hvals key               取出这个key 对应所有的属性的值
    hgetall key             列出这个key的所有属性和值
  1. list 列表

    存储多个有序的字符串

    rpush key value ...     右边插入元素           
    lpush key value ...     左边插入元素
    lrange key start end    取出数据 +开始(0)和结束(?)       
    lpop key 左侧pop        从数组中把左侧pop弹出
    lrem key count value        删除 +key  +count数量的  +value
  1. set 集合

    不允许有重复元素.

    同时处理多个集合的交集/并集/差集

    sadd key element ...   添加数据      
    exists key              是否出现  
    srem key element ... 删除元素
    scard key       元素个数
    sismember key element 判断是否在集合中
    smembers key  列出所有元素
  1. zset 有序集合
    zadd key score member [score member...]   添加(可两个一起添加 
    zcard key           查看元素数量               
    zscore key member       查看分数
    zrem key member         移除
    zincrby key score member   指定key 元素 增长   
    zrange   scores  +count  +count  +witnscores 按key 排序后的数量 +witnscores后面会跟分数
posted on 2019-06-29 14:57  脑抽不要停  阅读(1708)  评论(0编辑  收藏  举报