zoukankan      html  css  js  c++  java
  • Redis拾遗(一)

    最近看了一本好书《Redis开发与运维(付磊)》,感觉里面讲解深入浅出,实在受益匪浅,遂记录点滴。

    Redis八个重要特性:

    1. 速度快:全部数据储存在内存,这一点就不知道比别的快了多少。C语言实现。单线程,避免多线程存在的竞争问题。
    2. 基于键值对的数据结构服务器
    3. 丰富的功能:提供键过期机制,可用于缓存。提供订阅发布功能,可用做实现消息系统。支持Lua脚本。简单的事务功能。提供pipeline功能,一次性传输数据,避免网络开销。
    4. 简单稳定
    5. 支持语言多
    6. 持久化:RDB和AOF,可将数据保存到硬盘,不会掉电消失。
    7. 主从复制
    8. 高可用和分布式

    全局命令:

    1. 查看所有键:keys *  时间复杂度:O(n)
    2. 键总数:dbsize  时间复杂度O(1) 因为内部有键总数变量
    3. 查看键是否存在:exists key
    4. 删除键:del key [key1] 返回结果为删除成功的键数
    5. 键过期:expire key seconds 
    6. 键剩余过期时间:ttl  key   返回值:大于0的整数,键剩余过期时间,-1键没设置过期时间,-2键不存在
    7. 键的数据结构类型:type key  键不存在则返回none
    8. 查询内部编码:object encoding key 

    字符串:

    1. 键值最大不能超过512M
    2. 设置命令:set key value [ex seconds] [px milliseconds] [nx|xx]  
      1. ex seconds: 为键设置秒级过期时间。
      2. ·px milliseconds: 为键设置毫秒级过期时间。
      3. ·nx: 键必须不存在, 才可以设置成功, 用于添加
      4. .xx :键必须存在,用于更新键
    3. setex  setnx  命令为开关ex nx简写命令
    4. 获取值:get key 不存在返回nil
    5. 批量设置值:mset key1 val1 key2 val2...
    6. 批量获取值:mget key1 key2...
    7. 批量操作节省网络开销
    8. 自增:incr key 键存在且为整数时,执行后加一,键为非整数报错,键不存在返回1
    9. 扩展:decr incrby decyby incrbyfloat
    10. 追加值:append key value
    11. 字符串长度:strlen key
    12. 设置并返回原值:getset key value
    13. 设置指定位置的字符:setrange key offeset value
    14. 获取部分字符串:getrange key start end
    15. 应用场景:
      1. 缓存功能
      2. 计数功能
      3. 共享session:解决分布式系统中session存在多个服务器中问题,集中在redis中读取
      4. 限速

    哈希:

    1. 设置值:hset key field value
    2. 获取值:hget key field
    3. 删除field:hdel key field :返回成功删除field的个数
    4. 计算field个数:hlen key
    5. 批量操作:hmget key field1 field2...     hset key field1 val field2 val2
    6. 判断field是否存在:hexists key field
    7. 获取所有field :hkeys key
    8. 获取所有val:hvals key
    9. 获取所有field-val:hgetall key
    10. hincrby hincrbyfloat 
    11. 计算val长度:hstrlen key field  

    不知不觉已经12点后了,困得不行,早点睡个“养生觉”吧,别的部分下回更新~See you

  • 相关阅读:
    linux中编写同步文件的脚本
    SSH实现免密登录
    关于ISO 15765-2的解读
    设置Tera Term
    串口通信有极限速度
    三相永磁电机电流采样
    eclipse中F3快捷键无法跳转到定义的解决方法
    电脑和航模杂志和电子开发网站汇总
    MC9S08DZ60经典单片机
    STM32的SWD调试
  • 原文地址:https://www.cnblogs.com/fly-to-the-sky/p/9649612.html
Copyright © 2011-2022 走看看