当前位置: 首页> 健康> 美食 > ios软件开发用什么工具_濮阳网络诈骗2最新消息_百一度一下你就知道_品牌营销方案

ios软件开发用什么工具_濮阳网络诈骗2最新消息_百一度一下你就知道_品牌营销方案

时间:2025/7/14 10:55:05来源:https://blog.csdn.net/2303_79357053/article/details/146047713 浏览次数:0次
ios软件开发用什么工具_濮阳网络诈骗2最新消息_百一度一下你就知道_品牌营销方案

目录

Redis简介

安装配置(Windows)

GUI工具RedisInsight的使用

十大数据类型(5基本5高级)

字符串String

列表List

集合Set(S)

有序集合SortedSet(Z)

哈希Hash(H)

发布订阅模式

消息队列Stream(X)

地理空间Geospatial(GEO)

HyperLogLog(PF)

位图Bitmap(BIT)

位域BitField

事务

数据持久化

主从复制

哨兵模式


Redis简介

  • 官网:Redis 教程_redis教程

  • Remote DIctionary server是一个开源的基于内存的数据存储系统

  • 作用

    • 数据库DB缓存Cache

    • 消息队列MQ

    • ......

    • 最热门NoSQL数据库之一

  • Mysql

    • 基于磁盘IO,读写操作速度与内存相比非常慢

    • Redis:基于内存的数据存储系统

  • 使用方式

    • 命令行界面CLI(Command Line Interface)

    • 应用程序接口API(Application Programming Interface)

    • 图 形用户界面GUI(Graphical User Interface)

安装配置(Windows)

  1. WSL-安装Linux系统-安装Redis

  2. Docker-下载Redis镜像-运行Redis

  3. 安装文件-简单(but比较老的5.0版本)

    • MAC/Linux启动服务:redis-server

    • Windows:redis-server.exe

    • 启动客户端:redis-cli

GUI工具RedisInsight的使用

  • 优点

    • 更方便操作redis

    • 直观看到redis的内存使用情况

    • 自带所有命令的说明文档

    • 本地连接到远程的redis服务

十大数据类型(5基本5高级)

  • redis中的数据以键值对key-value存储

  • 默认使用字符串存储数据,二进制安全

字符串String
  1. 设置:set key value

  2. 取值:get key(区分大小写)

  3. 删除:del key

    • flushall:把数据库里面的键都删除掉(慎用)

  4. 判断是否存在:exists key

  5. 查找:keys+

    • *:所有

    • *me:以me结尾的键

  6. 登录:redis-cli --raw

    • 以原始的形式显示内容

    • 如果设置键值对用了中文,会以二进制的形式输出,所以要--raw

  7. 清空页面:clear

  8. 设置一个带有过期时间(释放内存,用户校对)的键值对

    • TTL key(Time to live):查看过期时间

    • expire key 10:设置过期时间10s

    • setex key 10 value:设置一个带有过期时间的键值对

    • setnx key value:只有当键不存在时才设置键的值,键存在则不做任何动作

列表List
  • 一般用来存储和操作一组有顺序的数据

  1. LPUSH key value1 [value2] :将一个或多个值插入到列表头部

  2. LRANGE key start stop:获取列表指定范围内的元素

    • start:0|stop:-1则可获取从第一个到最后一个

  3. RPOP key:移除并获取列表最后一个元素

    • 后面加个n:表示要删除的列表头部元素个数

  4. LLEN key:获取列表长度

  5. RPOPLPUSH source destination: 移除列表的最后一个元素,并将该元素添加到另一个列表并返回

    • 实现了一个最简单的先进先出队列

  6. LTRIM key start stop:列表只保留指定区间内的元素

集合Set(S)
  • 列表中的元素可以重复

  • set中的元素不可重复,不具有顺序

  1. SADD key member1 [member2]: 向集合添加一个或多个成员

  2. SISMEMBER key member:判断元素是否在集合中

  3. SREM key member1 [member2]:删除集合中一个或多个成员

  4. 集合运算:交集 并集 差集

有序集合SortedSet(Z)
  • 每个元素都会关联一个浮点类型的分数,从而对元素进行从小到大的排序

  • 元素唯一,但分数可重复

  1. ZADD key score1 member1 [score2 member2]: 向有序集合添加一个或多个成员,或者更新已存在成员的分数

  2. ZRANGE key start stop: 通过索引区间返回有序集合成指定区间内的成员

    • 0 -1:所有

    • 后+ [WITHSCORES] :同时显示分数

  3. ZSCORE key member:返回成员的分数值

  4. ZREVRANK key member:反转,有序集成员按分数值递减(从大到小)排序

  5. ZRANK key member:指定成员的索引

  6. ZREM key member :删除成员

哈希Hash(H)
  • 一个string类型的field和value的映射表(键值对集合)

  • 适合存储对象

  1. HSET key field value:将哈希表 key 中的字段 field 的值设为 value

     HSET person name lisiHSET person age 100
  2. HGET key field:获取指定字段的值

  3. HGETALL key:获取在哈希表中指定 key 的所有字段和值

  4. HDEL key field1 [field2]: 删除一个或多个哈希表字段

  5. HEXISTS key field:判断某个键值对是否存在

  6. HKEYS key:获取所有哈希表中的字段

  7. HLEN key:获取哈希表中字段的数量

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

  • 局限性:

    • 消息无法持久化

    • 无法记录历史信息

  1. SUBSCRIBE channel [channel]: 订阅一个或多个频道的信息

  2. PUBLISH channel message: 将信息发送到指定的频道

消息队列Stream(X)
  • 轻量级:解决发布订阅功能的局限性

  1. XADD key id field value:添加一条消息

    • id:*自动生成一个消息的id

  2. XLEN key:查看Stream中消息的数量

  3. XRANGE key start end [COUNT count]:查看消息中的详细内容

    • start-;end+:所有消息

  4. XDEL key id[id...]:删除消息

  5. XTRIM key MAXLEN | MINID [ = | ~ ] threshold [LIMIT count]

    • MAXLEN 0:删除所有消息

  6. XREAD COUNT count BLOCK milliseconds STREAMS key [key...] id [id...]:读取消息

    • COUNT 2:一次读取两条消息

    • BLOCK 1000:没有消息的话就阻塞1000ms(1s)

    • id

      • 0:表示从头开始读取

      • $|>:读取最新消息

  7. XGROUP CREATE key id | $ [MKSTREAM] [ENTRIESREAD entries-read]:创建消费者组

  8. XINFO GOURPS key:查看消费者组的信息

  9. XGROUP CREATECONSUMER key group consumer:添加消费者

  10. XREADGROUP GROUP group consumer [COUNT count] [BLOCK milliseconds] [NOACK] STREAMS key id:读取消息(被消费)

地理空间Geospatial(GEO)
  • 存储地理位置信息的数据结构

  • 支持对地理位置进行各种计算操作

  1. GEOADD key [NX|XX] [CH] longitude latitude member:添加一个地理位置信息

     GEOADD city 116.405285 39.904989 beijing//经度纬度
  2. GEOPOS key member:获取某个位置的经纬度

  3. GEODIST key member1 member2:计算两个地理位置之间的距离

    • 默认单位为m

    • 想换算成km,则在后面加上km

  4. GEOSEARCH key frommember member | FROMLONGLAT longitude latitude :搜索指定范围内的成员

    • FROMLONGLAT

      • BYRADIUS 300km:圆形范围,半径

      • BYBOX:矩形范围

HyperLogLog(PF)
  • 一种用来做基数(一个集合中不计算重复元素的个数)统计的算法

  • 适合用来做一些对精确度要求不高,而且数据量非常大的统计工作

    • 统计网站的UV

    • 统计某个词的搜索次数

  1. PFADD key element [element ...]:添加指定元素到 HyperLogLog 中

  2. PFCOUNT key [key ...]:查看基数估算值

  3. PFMERGE key sourcekey [sourcekey ...]:合并 HyperLogLog

位图Bitmap(BIT)
  • 字符串类型的扩展:使用String类型来模拟一个Bit数组

  • 支持位运算:与 或 非

  • 应用场景:

    • 记录用户的签到情况

    • 在线状态

    • 有没有点赞

    • 等等

  1. SETBIT key offset value:设置某个偏移量的值

     SETBIT dianzan 0 1SETBIT dianzan 1 0
  2. SET key value

     SET dianzan "\xF0"
    • 16进制可以一次性设置多个位的值

  3. GETBIT key offset:获取点赞的每一位值

  4. BITCOUNT key [start end[BYTE|BIT]]:统计数量

  5. BITPOS key bit [start end[BYTE|BIT]]:用来获取某个key里面第一个出现0或者1的位置

位域BitField
  • 将很多小的整数存储到一个较大的位图中

    • 更加高效地使用内存

  • 例子

    • 开发了一个游戏,可以利用位域来记录每个玩家在游戏中的一些关键信息(金钱、等级、是否在线等)

  1. BITFIELD key [GET encoding offset | [OVERFLOW WRAP | SATLEATL]:设置

    • 将get改成set:获取

  2. GET key:查看内存中现在的情况

事务

  • 可以一次执行多个任务

    • 某一个命令执行失败,后面的命令依然执行

  • MULTI:用于开启一个事务

    • 事务开启后,所有的命令都会被放入到一个队列中

  • EXEC:执行事务中的所有命令

  1. MULTI:事务块开始

  2. EXEC

数据持久化

  • redis是一个基于内存的数据库,没有持久化:服务器重启or断电,所有数据都会丢失

  • 两种持久化

    1. RDB(Redis Database)方式

      1. 适合备份

      2. 在指定时间间隔内,将内存中的数据快照写入磁盘。是某一个时间点上数据的完整副本

      3. 可通过配置文件中的save参数来配置

    2. AOF(Append Only File)方式

      1. 追加文件

      2. 执行写命令的时候,不仅会将命令写入到内存中,同时将命令写入到一个追加的AOF文件中

      3. 以日志的形式记录每一个写操作

      4. 开启AOF方式:在配置文件中将append only这个参数的值改为yes

主从复制

  1. 将一台redis服务器(主节点)的数据复制到其他的redis服务器(从节点)

    • 一对多

    • 单向复制

    • 主节点:写操作,异步发送

    • 从节点:读操作,主动更新

  2. 配置主从复制

    • 只需要修改从节点的配置(2种)

    1. 通过命令行执行命令

    2. 通过配置文件来修改

哨兵模式

关键字:ios软件开发用什么工具_濮阳网络诈骗2最新消息_百一度一下你就知道_品牌营销方案

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: