• Redis 学习开发笔记


    Redis特点:

      1、速度快

      2、支持丰富的数据类型:字符串、哈希列表、集合

      3、操作具有原子性,所有Redis操作都是原子操作

      4、多实用工具,可应用如缓存,消息队列,应用程序中任何短期数据,如web中会话,网页命中计算

    Redis有专用命令管理键,包括有设置过期时间,判断是否存在,转移,查找类型等

    键的形式:表名:主键名:列名

     

    应用场景 

    Redis作缓存系统

    Redis可以对每个键设置生存时间

    可以限定数据占用的最大内存空间,在数据达到空间限制后可以按照一定规则自动淘汰不需要的键。

    设置方法: 修改配置文件的maxmemory参数,限制Redis最大可用内存大小(单位是字节),当超出了这个限制时Redis会依据maxmemory-policy参数指定的策略来删除不需要的键直到Redis占用的内存小于指定内存.

    Redis作队列

    列表类型键可以用来实现队列,并支持阻塞时读取,可以很容易地实现一个高性能的优先级队列。

    Redis数据类型

    1、string类型

    常用命令: set,get,decr,incr,mget 等

    基本操作列表:

    GET 获取指定键对应的值
    SET 设定键值
    DEL 删除指定键对应的值(对所有数据类型都有效)

     

    127.0.0.1:6379> set hello world
    OK
    127.0.0.1:6379> get hello
    "world"
    127.0.0.1:6379> del hello
    (integer) 1
    127.0.0.1:6379> del hello
    (integer) 0
    127.0.0.1:6379> get hello
    (nil)
    127.0.0.1:6379> 

    2、list类型

    常用命令:lpush,rpush,lpop,rpop,lrange等

    基本操作列表:

    RPUSH 从列表的右侧压入数据
    LRANGE 从列表中获取指定范围内的数据
    LINDEX 根据给定的下标获取列表中的值
    LPOP 从列表的左侧弹出数据并返回

     

    127.0.0.1:6379> rpush list item1
    (integer) 1
    127.0.0.1:6379> rpush list item2
    (integer) 2
    127.0.0.1:6379> rpush list item3
    (integer) 3
    127.0.0.1:6379> lrange list 0 -1
    1) "item1"
    2) "item2"
    3) "item3"
    127.0.0.1:6379> lindex liat 1
    (nil)
    127.0.0.1:6379> lindex list 1
    "item2"
    127.0.0.1:6379> lindex list 0
    "item1"
    127.0.0.1:6379> lpop list
    "item1"
    127.0.0.1:6379> lrange list 0 -1
    1) "item2"
    2) "item3"
    127.0.0.1:6379> 

    3、set(无序)类型

    常用命令:sadd,spop,smembers,sunion 等

    基本操作列表:

    SADD 向集合中添加数据
    SMEMBERS 返回集合中所有的数据
    SISMEMBER 检测给定的值在集合中是否存在
    SREM 如果给定的值存在,从集合中删除该值

     

    127.0.0.1:6379> sadd setkey item
    (integer) 1
    127.0.0.1:6379> sadd setkey item1
    (integer) 1
    127.0.0.1:6379> sadd setkey item2
    (integer) 1
    127.0.0.1:6379> sadd setkey item3
    (integer) 1
    127.0.0.1:6379> sadd setkey item4
    (integer) 1
    127.0.0.1:6379> smembers setkey
    1) "item1"
    2) "item"
    3) "item3"
    4) "item2"
    5) "item4"
    127.0.0.1:6379> sismember setkey item4
    (integer) 1
    127.0.0.1:6379> sismember setkey item5
    (integer) 0
    127.0.0.1:6379> srem setkey item
    (integer) 1
    127.0.0.1:6379> sismember setkey item
    (integer) 0
    127.0.0.1:6379> 

    4、hash类型

    常用命令:hget,hset,hgetall 等

    基本操作列表:

    HSET 基于给定的键值存储哈希值
    HGET 基于给定的键值获取哈希值
    HGETALL 获取所有的哈希值(包括键也会一并返回)
    HDEL 如果给定的键存在,删除该键对应的哈希值

     

    127.0.0.1:6379> hset hashkey subkey1 item1
    (integer) 1
    127.0.0.1:6379> hset hashkey subkey2 item2
    (integer) 1
    127.0.0.1:6379> hset hashkey subkey3 item3
    (integer) 1
    127.0.0.1:6379> 
    127.0.0.1:6379> hgetall hashkey
    1) "subkey1"
    2) "item1"
    3) "subkey2"
    4) "item2"
    5) "subkey3"
    6) "item3"
    127.0.0.1:6379> hdel hashkey subkey2
    (integer) 1
    127.0.0.1:6379> hdel hashkey subkey2
    (integer) 0
    127.0.0.1:6379> hget hashkey subkey2
    (nil)
    127.0.0.1:6379> hget hashkey subkey1
    "item1"
    127.0.0.1:6379> hgetall hashkey
    1) "subkey1"
    2) "item1"
    3) "subkey3"
    4) "item3"
    127.0.0.1:6379> 

    5、zset(有序)类型

    常用命令:zadd,zrange,zrem,zcard等

    基本操作列表:

    ZADD 根据给定的排序(score)向有序集合添加数据
    ZRANGE 从有序集合中获取排序好的数据
    ZRANGEBYSCORE 基于指定范围的排序值获取数据
    ZREM 如果给定的键存在,删除该键对应的数据
    127.0.0.1:6379> zadd zsetkey 728 member1
    (integer) 1
    127.0.0.1:6379> zadd zsetkey 982 member2
    (integer) 1
    127.0.0.1:6379> zadd zsetkey 982 member2
    (integer) 0
    127.0.0.1:6379> zadd zsetkey 983 member2
    (integer) 0
    127.0.0.1:6379> zadd zsetkey 983 member3
    (integer) 1
    127.0.0.1:6379> zrange zsetkey 0 -1
    1) "member1"
    2) "member2"
    3) "member3"
    127.0.0.1:6379> zrange zsetkey 0 -1 withscores
    1) "member1"
    2) "728"
    3) "member2"
    4) "983"
    5) "member3"
    6) "983"
    127.0.0.1:6379> zrangebyscore zsetkey 0 800 withscores
    1) "member1"
    2) "728"
    127.0.0.1:6379> zrange zsetkey 0 800 withscores
    1) "member1"
    2) "728"
    3) "member2"
    4) "983"
    5) "member3"
    6) "983"
    127.0.0.1:6379> zrem zsetkey member1
    (integer) 1
    127.0.0.1:6379> zrem zsetkey member1
    (integer) 0
    127.0.0.1:6379> zrange zsetkey 0 -1 withscores
    1) "member2"
    2) "983"
    3) "member3"
    4) "983"
    127.0.0.1:6379> 

    6、HyperLogLog

    可以非常省内存去统计各种计数,但无法知道统计详细内容

    7、发布订阅

    消息通信模式,发送者(pub)发送消息,订阅者(sub)接收消息

  • 相关阅读:
    【重要】ASCII码表
    深入了解php opcode缓存原理
    php 请求参数限制
    【Demo】 生成二维码 和 条形码
    【Demo】HTML5 拍照上传
    jq cookie的使用
    vue.js中的v-for输出数组理解
    js无限轮播的写法
    HTML5视频的使用总结
    angular报错总计
  • 原文地址:https://www.cnblogs.com/m2492565210/p/7927103.html
Copyright © 2020-2023  润新知