当前位置: 首页 > news >正文

有哪些好用的设计网站有哪些内容漳州 网站建设公司

有哪些好用的设计网站有哪些内容,漳州 网站建设公司,网站建设的总体设计思想,wordpress汉化器string 字符串 字符串类型是 Redis 最基础的数据类型#xff0c;关于字符串需要特别注意#xff1a; 1.⾸先Redis中所有 key 的类型都是字符串类型#xff0c;⽽且其他⼏种数据结构也都是在字符串类似基础上构建的#xff0c;例如 list 和 set 的元素类型是字符串类型。 2…string 字符串 字符串类型是 Redis 最基础的数据类型关于字符串需要特别注意 1.⾸先Redis中所有 key 的类型都是字符串类型⽽且其他⼏种数据结构也都是在字符串类似基础上构建的例如 list 和 set 的元素类型是字符串类型。 2.其次字符串类型包含⼀般格式的字符串或者类似JSON、XML格式的字符串数字可以是整型或者浮点型甚⾄是⼆进制流数据例如图片、音频、视频等。不过⼀个字符串的最大值不能超过512MB,一般不建议存储较大的图片、音频、视频等。 由于 Redis 内部存储字符串完全是按照⼆进制流的形式保存的所以 Redis 是不处理字符集编码问题的客⼾端传⼊的命令中使⽤的是什么字符集编码就存储什么字符集编码。 一、string常用命令 set 将 string 类型的 value 设置到 key 中。如果 key 之前存在则覆盖⽆论原来的数据类型是什么。之 前关于此key的 TTL 也全部失效。 语法 SET key value [expiration EX seconds|PX milliseconds] [NX|XX]选项 SET 命令⽀持多种选项来影响它的⾏为 EX seconds 使⽤秒作为单位设置 key 的过期时间。PX milliseconds 使⽤毫秒作为单位设置 key 的过期时间。NX 只在 key 不存在时才进⾏设置即如果 key 之前已经存在设置不执⾏。XX 只在 key 存在时才进⾏设置即如果key 之前不存在设置不执⾏。 下图是使用的具体示例 set key1 123 EX 10 等价于下面这两行 set key1 123 expire key1 10其中NX选项相当于是元素不存在进行插入操作XX选项是要元素存在但是需要修改元素的值。 返回值 1.如果设置成功返回OK。 2.如果由于SET指定了NX或者XX但条件不满⾜SET不会执⾏并返回(nil)。 get 获取 key 对应的 value。如果 key 不存在返回 nil。如果 value 的数据类型不是 string会报错。 语法 GET key对于get来说只是支持字符串类型的value如果value是其他类型使用get获取就会出错。 当前的key3是list用get来获取会出错具体如下图所示 mset/mget mget作用⼀次性获取多个 key 的值。如果对应的 key 不存在或者对应的数据类型不是 string返回 nil。 语法 MGET key [key ...] mset作用⼀次性设置多个 key 的值。 语法 MSET key value [key value ...] 当有需求要一次性要set或者get多个key时mget或者mset消耗的资源会更少。 其中具体示例如下 其中这里使用了一个删库命令在公司生产环境上不要去使用这里使用是自己的服务器用来学习所以使用它没关系。 其中 flushall 命令是用来清除 redis 上所有的数据此操作相当于 mysql 里的 drop database即清除 redis 上所有的键值对都清空。 其中多次 get vs 单次 mget 流程如下 ⽤ mget / mset 由于可以有效地减少了⽹络时间所以性能相较更⾼。假设⽹络耗 时 1 毫秒命令执⾏时间耗时 0.1毫秒则执行时间如下表所示 操作时间1000次 get1000 * 1 1000 * 0.1 1100毫秒1次 mget 1000个键1 * 1 1000 * 0.1 101毫秒 setnx 作用设置key value但只允许在key之前不存在的情况下。 语法SETNX key value 返回值1表⽰设置成功。0表⽰没有设置。 incr/incrby incr / incrby作用 incr将key对应的string表⽰的数字加⼀而incrby将key对应的string表⽰的数字加 n。如果key不存在则视为key对应的value是0。如果key对应的string不是⼀个整型或者范围超过了64位有符号整型则报错。 返回值int 类型的加完后的数值。 其中此时key对应的 value 必须得是整数~~ 下面以incr为例 当value不是整数或者value超出范围时会出错 注意 当incr / incrby操作的key不存在时就会把这个key的value当做0来使用 decr/decrby decr / decrby作用将 key 对应的 string 表⽰的数字减⼀而decrby将key对应的string表⽰的数字减 n。如果 key 不存在则视为 key 对应的 value 是 0。如果 key 对 应的 string 不是⼀个整型或者范围超过了 64 位有符号整型则报错。 返回值int 类型的减完后的数值。 decr / decrby规则与incr / incrby是一致的都必须为整数。 decr/decrby与incr/incrby一样 当操作的key不存在时就会把这个key的value当做0来使用 当value不是整数或者value超出范围时会出错 incrbyfloat 将 key 对应的 string 表⽰的加上对应的值且是用双精度浮点数计算的。 1.如果对应的值是负数则视为减去对应的值。 2.如果 key 不存在则视为 key 对应的 value 是 0。 3.如果 key 对应的不是 string或者不是⼀个浮点数则报 错。允许采⽤科学计数法表⽰浮点数 语法INCRBYFLOAT key increment 总结作用如下 命令功能incr针对 value 1incrby针对 value ndecr针对 value - 1decrby针对 value - nincrbyfloat针对 value /- 小数 二、其他命令 append 作用如果 key 已经存在并且是⼀个string命令会将 value 追加到原有 string 的后边。如果 key 不存在 则效果等同于 SET 命令。 语法 APPEND KEY VALUE 返回值追加完成之后string的⻓度单位是字节。 下面是具体示例首先set一个key1并让key1的value后追加另一串字符串具体如下图所示 若当 key 不存在时相当于在空字符串后追加 当输入的是中文时由于此时是在终端 xshell 上是以utf-8编码直接写入的那么直接存入的就是十六进制存储utf-8编码值。 操作linux的时候千万注意不要乱按 ctrl s ctrl s在 xshell 中的作用是“冻结当前画面” ctrl q 解除冻结 如果想把汉字的原始显示出来在启动redis客户端的时候加上一个–raw这样的选项就可以使redis客户端能够自动的把二进制数据尝试翻译。 此时就可以看到数据汉字本身 getrange 作用返回 key 对应的 string 的⼦串由 start 和 end 确定左闭右闭。可以使⽤负数表示倒数。-1 代表倒数第⼀个字符-2 代表倒数第⼆个其他的与此类似。超过范围的偏移量会根据 string 的⻓度调整成正确的值。 相当于c中的 std::string 中的 substring用来获取子串。 注意 1. getrange是闭区间即前闭后闭这点与c中的std::string中的substring不同 2.且getrange的下标是可以支持负数的即 -1代表的是倒数第一个元素下标为 len - 1 的元素 语法GETRANGE key start end 如果字符串中保存的是汉字此时进行子串切分很可能切出来的就不是完整的汉字了~~ setrange 作用修改字符串的⼀部分从指定的偏移位置开始替换多长看要替换的value的长度。 语法SETRANGE key offset value 返回值替换后的 string 的⻓度。 当key不存在时setrange针对不存在的key也是可以操作的不过会把offset之前的内容填充成0x00 其中这里凭空生成了一个字节这个字节里的内容就是0x00aaa就被追加到 0x00的后面了 strlen 作用获取到字符串的长度单位是字节 语法STRLEN key 字符串类型命令总结表 命令执行效果SET key value设置 key 的值是valueget key获取 key 的值del key [key …]删除指定的 keymset key value [key value …]批量设置指定的 key 和 valuemget key [key …]批量获取 key的值incr key指定的 key 的值 1decr key指定的 key 的值 -1incrby key n指定的 key 的值 ndecrby key n指定的 key 的值 -nincrbyfloat key n指定的 key 的值 nappend key value指定的 key 的值追加 valuestrlen key获取指定 key 的值的长度setrange key offset value修改指定 key 的 offset 偏移量位置开始的部分值getrange key start end获取指定 key 的从 start 到 end 的部分值 三、string 内部编码 字符串类型的内部编码有 3 种具体如下 int8个字节的⻓整型。embstr小于等于 39 个字节的字符串。raw大于39 个字节的字符串。 Redis 会根据当前值的类型和⻓度动态决定使⽤哪种内部编码实现。 其中 embstr 和 raw 编码和在windows环境下visual studio系列的编译器中windows中的c代码中的 std::string 版本也是这种采取这种模式若字符串长度很短则存入定长的字符数组中对应的就是embstr过长则使用new来动态申请一大块 char 类型的内存来存储字符串(对应的就是raw)。 其中我们可以使用 object encoding key来查看key的内部编码方式 整型类型示例如下 短字符串示例如下 ⻓字符串示例如下 注意 当value是小数时redis 其内部本质是用字符串存储的。 四、使用场景 缓存功能 下图是比较典型的缓存使用场景其中 Redis 作为缓冲层MySQL 作为存储层绝⼤部分请求的数据都是从 Redis 中获取。由于 Redis 具有支撑高并发的特性所以缓存通常能起到加速读写和降低后端压力的作用。 其中整体的思路如下 在业务层应用服务器访问数据时先进入 redis 中查询。 如果 redis 中数据已经存在了就直接从 redis 中取出数据并交给应用服务器随后就不再继续访问mysql数据库了。 如果 redis中数据不存在在读取mysql把读取到的结果返回给应用服务器同时把这个数据写入到 redis缓存中。 注意事项 与MySQL等关系型数据库不同的是Redis没有表、字段这种命名空间⽽且也没有对键名有强制要求除了不能使⽤⼀些特殊字符。但设计合理的键名有利于防⽌键冲突和项⽬的可维护性⽐较推荐的⽅式是使⽤业务名:对象名:唯⼀标识:属性作为键名。例如MySQL的数据库名为vs⽤⼾表名为user_info那么对应的键可以使用vs:user_info:6379、“vs:user_info:6379:name来表⽰如果当前Redis只会被⼀个业务使⽤可以省略业务名vs:”。如果键名过程则可以使⽤团队内部都认同的缩写替代例如user:6379:friends:messages:5217可以被u:6379:fr : m :5217代替。毕竟键名过⻓还是会导致Redis的性能明显下降的。 计数功能 许多应用都会使用 Redis 作为计数的基础⼯具它可以实现快速计数、查询缓存的功能同时数据可以异步处理或者落地到其他数据源。如下图所示例如视频⽹站的视频播放次数可以使用 Redis 来完成例如用户每播放⼀次视频相应的视频播放数就会⾃增1。 共享会话 如下图所示⼀个分布式 Web 服务将用户的 Session 信息例如用户登录信息保存在各⾃的服务器中但这样会造成⼀个问题由于负载均衡的考虑分布式服务会将用户的访问请求均衡到不同的服务器上并且通常⽆法保证用户每次请求都会被均衡到同⼀台服务器上这样当用户刷新⼀次访问是可能会发现需要重新登录这个问题是用户无法容忍的。 为了解决这个问题可以使⽤ Redis 将用户的 Session 信息进⾏集中管理如下图所示在这种模式下只要保证 Redis 是高可用和可扩展性的无论用户被均衡到哪台 Web 服务器上都集中从 Redis 中查询、更新 Session 信息。 手机验证码 很多应用出于安全考虑会在每次进行登录时让用户输⼊手机号并且配合给手机发送验证码然后让用户再次输⼊收到的验证码并进⾏验证从而确定是否是用户本⼈。为了短信接⼝不会频繁访问会限制用户每分钟获取验证码的频率例如⼀分钟不能超过 5 次或者每次获取验证必须间隔30s那么就可以使用 redis并将对应的 key 设置过期时间和 value 的值来判断间隔时间或者是次数。
http://www.pierceye.com/news/564353/

相关文章:

  • 如何用手机做钓鱼网站贵阳建设厅网站
  • 网站建设工作自查报告网站建设的心得体会
  • 网站开发项目设计文档产品seo基础优化
  • 建筑工程招聘网站哪个好wordpress ssr
  • 制作一个网站平台做php网站需要什么软件开发
  • 长沙seo网站管理淮北论坛招聘最新消息兼职
  • .net网站源码下载珠海网站建设珠海
  • 网站被降权严重吗企业营销型网站的内容
  • 网站抓取qq号码原理社交电商平台排行榜
  • 贵阳做网站哪家公司好dw如何在网站做弹窗
  • 怎样做网站底部导航网站建设软件sh
  • 小白学网站建设与设计书如何制作app软件下载
  • 个人网站模板源码一般vs做的网站的总体框架
  • 服务器做网站流程wordpress分站
  • 电子商务平台网站建造莒南做网站
  • 网站文章好几天不收录注册送38元的游戏网站
  • 手机营销型网站建设定制一款软件需要多少钱
  • 网站备案增加域名解析电子信息工程移动互联网 学什么
  • 怎么在网站视频做字幕河北唐山建设工程协会网站
  • 自己做网站导航页腾讯云服务器可以做传奇网站吗
  • 郑州%公司 网站建设页面设计教案
  • 昌邑建设局网站北京seo优化wyhseo
  • 网站访客抓取新媒体营销课程心得体会
  • 网站建设售前域名注册
  • 运动器材网站开发方案失信被执行人名单查询系统
  • 深圳商业网站建设模板网站建设worldpress
  • 宁波网站排名网站开发 哪家好
  • 做网站的软件工程师网站积分程序怎么建设
  • ps网站轮播图怎么做动漫制作专业的来源
  • 怎么知道一个网站是谁做的建筑认证