redis总结

基础数据结构

  • 字符串(string)

    • 字符串、整数、浮点数
    • 对整个字符串或者字符串的其中一部分执行操作,对整数和浮点数执行自增或自减操作
  • 哈希列表(hash)

    • 包含键值对的无序散列表
    • 添加、获取、移除单个键值对,获取所有键值对,检查某个键是否存在
  • 列表(list)

    • 链表
    • 从两端压入或者弹出元素,读取单个或者多个元素进行修剪,只保留一个范围内的元素
  • 集合(set)

    • 无序集合
    • 添加、获取、移除单个元素,检查一个元素是否存在与集合中,计算交集、并集、差集,从集合里面随机获取元素
  • 有序集合(sort set)

  • 有序集合

  • 添加、获取、删除元素,根据分值范围或者成员来获取元素,计算一个键的排名

复杂的数据结构

  • 位图(bitmaps)

    • Bitmap 在 Redis 中不是一种实际的数据类型,而是一种将 String 作为 Bitmap 使用的方法。可以理解为将 String 转换为 bit 数组。使用 Bitmap 来存储 true/false 类型的简单数据极为节省空间。
  • 算法数据结构(hyperloglogs)

    • HyperLogLogs 是一种主要用于数量统计的数据结构,它和 Set 类似,维护一个不可重复的 String 集合,但是 HyperLogLogs 并不维护具体的 member 内容,只维护 member 的个数。也就是说,HyperLogLogs 只能用于计算一个集合中不重复的元素数量,所以它比 Set 要节省很多内存空间
  • 地理空间(geo)

    • 地理空间索引半径查询
  • 布隆过滤(bloomfilter)

非分布式场景下Redis应用的备份与容灾

  • 方案一

    • 一个Master节点,两个Slave节点。客户端写数据的时候是写Master节点,读的时候,是读取两个Slave,这样实现读的扩展,减轻了Master节点读负载。
  • 方案二

    • Master和Slave1使用keepalived进行VIP转移。Client连接Master的时候是通过VIP进行连接的。避免了方案一IP更改的情况。
  • Redis Sentinel架构

    • Sentinel集群对自身和Redis主从复制进行监控。当发现Master节点出现故障时,会经过如下步骤:
    • Sentinel之间进行选举,选举出一个leader,由选举出的leader进行failover
    • Sentinel leader选取slave节点中的一个slave作为新的Master节点。

客户端工具

  • 使用socket连接redis服务器

     redis-cli -s /tmp/redis.sock
    
  • 不使用socket连接redis服务器

    redis-cli
    

性能测试工具

  • 使用默认参数测试

    redis-benchmark
    
  • 自定义参数测试

    redis-benchmark -n 1000000 --csv
    
  • 雪球 rdr:

      https://github.com/xueqiu/rdr
    
  • redis-rdb-tools:

    https://github.com/sripathikrishnan/redis-rdb-tools
    

工具命令

  • 指定配置文件启动服务

    redis-server redis.conf
    
  • 指定端口启动服务

    redis-server --port 6379
    

检查修复本地数据文件工具

redis-check-dump dump.rdb

检查修复AOF日志文件工具

redis-check-aof appendonly.aof

基础命令

  • keys

    • 列出Redis所有的key
  • del

    • 删除一个或多个key,多个key之间用空格分隔,其返回值为整数,表示成功删除了多少个存在的key,因此,如果只删除一个key,则可以从返回值中判断是否成功,如果删除多个key,则只能得到删除成功的数量
  • exists

    • exists命令用于判断一个或多个key是否存在,判断多个key时,key之间用空格分隔,exists的返回值为整数,表示当前判断有多少个key是存在的。
  • expire/pexpire

    • expire设置key在多少秒之后过期,pexpire设置key在多少毫秒之后过期,成功返回1,失败返回0。
  • ttl/pttl

    • ttl和pttl命令用于获取key的过期时间,其返回值为整型

      • 当key不存在或过期时间,返回-2。

当key存在且永久有效时,返回-1。

	- 

当key有设置过期时间时,返回为剩下的秒数(pttl为毫秒数)

  • expireat/pexpireat

    • 设置key在某个时间戳过期,expreat参数时间戳用秒表示,而pexpireat则用毫秒表示,与expire和pexpire功能类似,返回1表示成功,0表示失败。
  • persist

    • 移除key的过期时间,将key设置为永久有效,当key设置了过期时间,使用persist命令移除后返回1,如果key不存在或本身就是永久有效的,则返回0
  • type

    • 判断key是什么类型的数据结构,返回值为string,list,set,hash,zset,分别表示我们前面介绍的Redis的5种基础数据结构。

geo,hyperloglog,bitmaps等复杂的数据结构,都是在这五种基础数据结构上实现,比如geo是zset类型,hyperloglog和bitmaps都为string。

  • auth

    • Redis认证命令,执行其他命令前,必须先进行认证
  • ping

    • 测试客户端和服务器之间的联通,返回值为PONG,表示联通
  • config get *

    • 获取所有配置参数
  • config set config_name config_value

    • 设置配置参数值
  • info

    • 返回服务器信息
  • select

    • 切换数据库,redis默认的数据库是0-15,共16个数据库
  • move

    • 将当前库的键移动到其他数据库
  • dbsiz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值