zoukankan      html  css  js  c++  java
  • redis小结

    redis介绍:

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

    redis连接命令:

    CONFIG GET requirepass :查看设置的密码验证
    CONFIG SET requirepass :设置密码
    AUTH {password} :验证密码是否正确
    ECHO {message} :打印字符串
    PING :查看服务是否运行
    SELECT {index} : 选择指定索引的数据库

    reids 服务器常用命令:

    SAVE :同步保存数据到硬盘
    BGSAVE : 在后台异步保存当前数据库的数据到磁盘
    INFO :获取 Redis 服务器的各种信息和统计数值
    FLUSHDB :删除当前数据库的所有key
    FLUSHALL :删除所有数据库的所有key
    DBSIZE :返回当前数据库的 key 的数量
    TIME :返回当前服务器时间
    CLIENT LIST :获取连接到服务器的客户端连接列表
    CLIENT KILL {ip:port} :关闭客户端连接

    redis配置:

    Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf
    通过 CONFIG 命令查看或设置配置项
    CONFIG GET * : 读取所有配置
    CONFIG GET {setting_name} : 读取指定配置值
    CONFIG SET {setting_name} {setting_value} : 设定指定配置值

    redis五种数据类型:

    string(字符串):
    SET {key} {value}:设置指定 key 的值
    GET {key}:获取指定 key 的值
    GETRANGE {key} {start} {end} :返回 key 中字符串值的子字符
    MSET {key} {value} ...:同时设置一个或多个 key-value 对
    MGET {key} ...:获取所有(一个或多个)给定 key 的值
    STRLEN {key}:返回 key 所储存的字符串值的长度
    INCR {key}:将 key 中储存的数字值增一
    INCRBY {key} {increment}:将 key 所储存的值加上给定的增量值(increment)
    DECR {key}:将 key 中储存的数字值减一
    DECRBY {key} {increment}:key 所储存的值减去给定的减量值(decrement
    APPEND {key}:将指定的 value 追加到该 key 原来值(value)的末尾

    has(哈希)

    HSET {key} {value}:将哈希表 key 中的字段 field 的值设为 value
    HGET {key}:获取存储在哈希表中指定字段的值
    HMSET {key} {field} {value} ...:同时将多个 field-value (域-值)对设置到哈希表 key 中
    HMGET {key} {field} ...:获取所有给定字段的值
    HDEL {key} {field} ...:删除一个或多个哈希表字段
    HEXISTS {key} : 查看哈希表 key 中,指定的字段是否存在
    HGETALL {key}:获取在哈希表中指定 key 的所有字段和值
    HINCRBY {key} {field} {increment}:为哈希表 key 中的指定字段的整数值加上增量 increment
    HKEYS {key}:获取所有哈希表中的字段
    HVALS {key}:获取哈希表中所有值
    HLEN {key}:获取哈希表中字段的数量

    list(列表):

    LPUSH/RPUSH {key}:添加一个元素到列表的头部或者尾部
    LPOP/RPOP {key}:移出并获取列表的第一个/最后一个元素
    LLEN {key}:获取列表长度
    LRANGE {key} {start} {stop} :获取列表指定范围内的元素
    LTRIM {key} {start} {stop} :对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
    LSET {key} {index} {value} :通过索引设置列表元素的值
    LINDEX {key} {index}:通过索引获取列表中的元素

    set(集合):

    SADD {key} {member}...:向集合添加一个或多个成员
    SCARD {key}:获取集合的成员数
    SDIFF {key} ...:返回给定所有集合的差集
    SINTER {key} ...:返回给定所有集合的交集
    SUNION {key} ...:返回所有给定集合的并集
    SISMEMBER {key} {member} :判断 member 元素是否是集合 key 的成员
    SMEMBERS {key}:返回集合中的所有成员
    SPOP {key} :移除并返回集合中的一个随机元素
    SREM {key} {member}...:移除集合中一个或多个成员
    SMOVE {source} {destination} {member} :将 member 元素从 source 集合移动到 destination 集合

    zset(有序集合):

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员
    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序
    有序集合的成员是唯一的,但分数(score)却可以重复
    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)

    ZADD {key} {score} {member}...:向有序集合添加一个或多个成员,或者更新已存在成员的分数
    ZCARD {key} :获取有序集合的成员数
    ZCOUNT {key} {min} {max} :计算在有序集合中指定区间分数的成员数
    ZSCORE [key} {member} :返回有序集中,成员的分数值
    ZRANK {key} {member} :返回有序集合中指定成员的索引
    ZREVRANK {key} {member} :返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
    ZREM {key} {member}...:移除有序集合中的一个或多个成员
    ZREMRANGEBYLEX {key} {min} {max} :移除有序集合中给定的字典区间的所有成员
    ZREMRANGEBYSCORE {key} {min} {max} :移除有序集合中给定的分数区间的所有成员
    ZREMRANGEBYRANK {key} {start} {stop} :移除有序集合中给定的排名区间的所有成员

    redis事务:

    Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
    批量操作在发送 EXEC 命令前被放入队列缓存
    收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行
    在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中

    一个事务从开始到执行会经历以下三个阶段:
      开始事务
      命令入队
      执行事务

    MULTI 标记一个事务块的开始
    EXEC 执行所有事务块内的命令
    DISCARD 取消事务,放弃执行事务块内的所有命令
    WATCH {key, ...}监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
    UNWATCH 取消 WATCH 命令对所有 key 的监视

    redis发布订阅:

    一个频道(channel)可以被多个客户端订阅(subcribe)
    当新消息发布(publish)给频道(channel)时,这个消息会被发送给订阅它的客户端

    SUBSCRIBE {channel} :订阅频道
    UBSUBSCRIBE {channel} :取消订阅
    PUBLISH {channel} {message} :发布消息

  • 相关阅读:
    获得目标服务器中所有数据库名、表名、列名
    SQL Server 2008 安装SQLDMO.dll
    三层交换原理
    NAT地址转换原理全攻略
    C#中显/隐式实现接口及其访问方法
    As,is含义?using 语句
    c#泛型约束
    C#几个经常犯错误汇总
    C#--深入分析委托与事件
    markdown基础
  • 原文地址:https://www.cnblogs.com/tongyishu/p/11696142.html
Copyright © 2011-2022 走看看