zoukankan      html  css  js  c++  java
  • Redis(一)基础

    Redis Remote Dictionary Server 远程字典服务器
    功能
    缓存(当空间达到限制时,可以按照一定规则,淘汰部分数据)
    队列(支持阻塞式读取)
    订阅/发布(可以将其做出聊天室)

    特点
    内存存储
    可以持久化
    数据类型丰富
    单线程
    命令都是原子操作
    命令简单

    常用命令
    keys pattern 获取符合规则的key列表
    注:? 一个字符
    * 0到多个字符
    [] 方括号中的任意字符(‘-’表示范围)
    exists key 该key是否存在(1存在,0不存在)
    del key ... 删除一个或多个key(不支持通配符,但可以通过Linux命令来达到模式匹配的目的)
    type key 获取key的类型

    字符串操作 命名 “对象类型:ID:对象属性”
    set key value (可以覆盖同名key 无论是什么类型)
    get key
    incr key(当value为整数时+1,并返回+1后的值;若不是整数error;没有该key时,默认原先值为0)
    自增ID 设立一个key 命名为 “对象类型:count”
    位操作 存储只有几种值得字段特别省空间

    散列表 命名 “对象类型:ID” (解决hash冲突时用拉链法)
    hset key field value (若field存在,即更新)(hsetnx field存在 不操作)
    hget key field
    hmset key field value [...]
    hmget key field [...]
    hgetall key
    hincrby key field increment (能增加浮点数吗?)
    hdel key field []
    hkeys key 返回全部键
    hvals key 返回全部值
    hlen key 字段数量

    列表(内部实现是用链表,两头快中间慢)(适用于新鲜事、日志系统)
    lpush key value [...] 左边添加
    rpush key value [...] 右边添加
    lpop key 左弹出
    rpop key 右弹出
    llen key 列表中有多少元素
    lrange key start stop 返回(从左开始)start stop之间的片段(0表示左边第一个)(为负数是表示从右开始,-1表示右边第一个)
    ltrim key start stop 截取start stop之间的片段(不返回)
    lrem key count value
    count>0 删除左开始前count个值为value的元素
    count=0 删除所有值为value元素
    count<0 删除右开始前count个值为value的元素
    lindex key index 返回指定位置的元素(index为位置)
    linsert key before/after pivot value 从左往右查找值为pivot的元素,更具before/after决定将value插在它的前面还是后面
    rpoplpush source destination 从源的右边弹出,再将该元素压入目标的左边

    集合(用无value的散列表实现)
    sadd key member [...] 添加元素
    srem key member [...] 删除元素
    smembers key 返回全部元素
    sismember key member 是否在集合中
    sdief keyA [keyX ...] 集合差集(元素属于A且不属于后面的集合)
    sinter keyA [keyX ...] 集合交集(所有集合的公共部分)
    sunion keyA [keyX ...] 集合并集(所有集合的所有部分)
    scard key 集合元素的个数
    sdiefstore destination keyA [keyX ...] 将集合运算结果放入destination中
    sinterstore destination keyA [keyX ...]
    sunionstore destination keyA [keyX ...]
    spop key 从集合中弹出一个元素
    srandmember key [count] 从集合中随机得到count个元素
    count不写默认为1
    count正数 返回不重复的
    count负数 返回可重复的
    不是很随机,原理是先随机找一个拉链,再随机找拉链上的值

    有序集合(散列表和跳跃表实现的,读中间值也快,耗内存)
    zadd key score member [...] 增加分数和成员(+inf 正无穷 -inf 负无穷)
    zscore key member 得到元素的分数
    zrange key start stop [withscores] 将start 和 stop之间的元素 从小到大排列输出 (带着后面的参数就会输出分数)
    zrevrange 从大到小输出
    zrangbyscore key min max [withscores] [limit offset count] 得到分数在min 到max之间的元素
    在min、max前加"("表示不包括这个值
    limit 偏移offset开始 输出count个
    zincrby key increment member 为某个成员加上increment分 ,increment可为负
    zcard key 获得数量
    zcount key min max 获得分数在某个范围之内的数量
    zrem key member [...] 删除一个或多个元素
    zremrangebyscore key min max 按分数删除元素
    zremrangebyrank key start stop 按排名删除元素
    zrank key member 从小到大(最小为0)得到member的排名
    zrevrank key member 从大到小
    zinterstore destination numkeys(集合数量) key[...] [weights [各个集合的权重]] [重复值计算方式]

    总结:
    1为成功 0为失败
    长度 列表为len 集合为card
    删除 rem
    位置 0 表示正着第一个 -1 表示负的第一个
    增加值 incrby 可为负(列表、集合没有)
    顺序:默认 从左到右 从小到大

  • 相关阅读:
    难以理解的二分查找
    程序设计第七次作业——关于计算器的总结
    程序设计第六次作业——计算器(可视化界面)
    课堂作业——1025反转链表
    程序设计第五次作业——计算器(调用文件输入输出)
    circle area
    程序设计第四次作业——计算器第二步(计算)
    第三次作业代码规范修改
    解决Type 'UnityEngine.Component' does not support slicing
    mactype支持qq浏览器
  • 原文地址:https://www.cnblogs.com/ironPhoenix/p/4502862.html
Copyright © 2011-2022 走看看