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

网站做竞价优化Django 个人博客网站开发

网站做竞价优化,Django 个人博客网站开发,发布html wordpress,婚礼网站怎么做的目录 1、介绍2、底层实现【1】SDS【2】int编码【3】embstr编码【4】raw编码【5】embstr和raw的区别 3、常用指令【1】字符串基本操作:【2】批量操作【3】计数器【4】过期时间【5】不存在就插入 4、使用场景 1、介绍 string是redis中最简单的键值对形式,…

目录

  • 1、介绍
  • 2、底层实现
    • 【1】SDS
    • 【2】int编码
    • 【3】embstr编码
    • 【4】raw编码
    • 【5】embstr和raw的区别
  • 3、常用指令
    • 【1】字符串基本操作:
    • 【2】批量操作
    • 【3】计数器
    • 【4】过期时间
    • 【5】不存在就插入
  • 4、使用场景

1、介绍

string是redis中最简单的键值对形式,它的value除了可以是字符串,还可以是数字、二进制数据,value的最大长度为521M,其底层主要通过int和SDS(简单动态字符串)组成。

2、底层实现

【1】SDS

SDS是redis的底层数据结构之一,其结构如下:

struct sdshdr {int len;    // 已使用的字节数int free;   // 未使用的空闲字节数char buf[]; // 存储字符的柔性数组
};

其功能为:

功能解释
预分配空间当字符串增长时,free记录额外分配的空间,避免频繁内存重新分配
惰性释放当字符串缩短时,free记录回收的空间,供后续复用,不会立即释放

与C字符串相比:

特性C字符串SDS
长度获取遍历到\0,时间复杂度为O(N)直接读len,时间复杂度为O(1)
修改时的内存重分配每次修改均需重分配通过free进行"预分配/惰性释放"
二进制安全无法存储含\0的数据通过len判断边界,支持二进制存储

【2】int编码

当string类型存储整型数据时,底层就采用了int编码方式,其存储结构可以如图表示:

在这里插入图片描述

【3】embstr编码

如果string类型存储字符串数据时,当字符串长度比较小时,也就是小于44字节(redis不同版本有差异),就采用embstr编码来存储短字符串,这时就用到了SDS数据结构,其存储结构如图表示:

在这里插入图片描述

【4】raw编码

如果string类型存储字符串数据时,当字符串长度大于44字节时,就采样raw编码来存储字符串,虽然raw编码也使用了SDS数据结构,但是和redis的基本结构不是连续的,结构如图所示:

在这里插入图片描述

【5】embstr和raw的区别

embstr编码和raw编码的区别如下:

对比维度embstrraw
存储结构RedisObject和SDS连续存储在同一内存块RedisObject和SDS分来存储
内存分配次数1次分配2次分配
访问效率更高,内存连续稍低,两次访问
修改时的行为任何修改操作都会转换为raw编码直接修改
适用场景短字符串长字符串
内存碎片更少更多
最大长度44B521MB

3、常用指令

【1】字符串基本操作:

#设置key-value
127.0.0.1:6379[2]> set animal cat  
OK#查看key对应的value
127.0.0.1:6379[2]> get animal
"cat"#判断key是否存在,存在返回1
127.0.0.1:6379[2]> exists animal
(integer) 1#判断key是否存在,不存在返回0
127.0.0.1:6379[2]> exists work
(integer) 0#获取key的长度
127.0.0.1:6379[2]> strlen animal
(integer) 3#删除对应的key-value
127.0.0.1:6379[2]> del animal
(integer) 1

【2】批量操作

#批量设置key-value
127.0.0.1:6379[2]> mset animal cat hobby eat
OK#批量获取key-value
127.0.0.1:6379[2]> mget animal hobby
1) "cat"
2) "eat"

【3】计数器

#设置数字10
127.0.0.1:16379[2]> set number 10
OK
127.0.0.1:16379[2]> get number
"10"#number自增+1
127.0.0.1:6379[2]> incr number
(integer) 11
127.0.0.1:6379[2]> get number
"11"#number自增+100
127.0.0.1:6379[2]> incrby number 100
(integer) 111
127.0.0.1:6379[2]> get number
"111"#number自增-1
127.0.0.1:6379[2]> decr number
(integer) 110
127.0.0.1:6379[2]> get number
"110"#number自增-100
127.0.0.1:6379[2]> decrby number 100
(integer) 10
127.0.0.1:6379[2]> get number
"10"

【4】过期时间

#查看key的过期时间,-1代表永不过期
127.0.0.1:6379[2]> ttl animal
(integer) -1#给已存在的key设置过期时间
127.0.0.1:6379[2]> expire animal 60
(integer) 1
#还剩58秒过期
127.0.0.1:6379[2]> ttl animal
(integer) 58
#-2代表key不存在,也就是已过期
127.0.0.1:6379[2]> ttl animal
(integer) -2#设置key-value并设置过期时间,第一种设置方式
127.0.0.1:6379[2]> set cat sleep ex 60
OK
127.0.0.1:6379[2]> ttl cat
(integer) 57#设置key-value并设置过期时间,第二种设置方式
127.0.0.1:6379[2]> setex dog 60 play
OK
127.0.0.1:6379[2]> ttl dog
(integer) 54

【5】不存在就插入

#返回1代表不存在插入成功
127.0.0.1:6379[2]> setnx animal cat
(integer) 1#返回0表达已存在插入失败
127.0.0.1:6379[2]> setnx animal cat
(integer) 0

4、使用场景

string类型根据其特性的使用场景如下:

特性说明场景
原子操作支持INCR/DECR等原子操作计数器、限流器
批量操作MEST/MGET减少网络开销批量缓存读写
位操作SETBIT/GETBIT直接操作二进制位布隆过滤器、位图统计
过期控制EXPIRE实现自动过期会话管理、临时数据缓存

文章转载自:

http://dlKQ4A2G.zwhtr.cn
http://k9THicYI.zwhtr.cn
http://xLELv8vr.zwhtr.cn
http://eIpqG9xB.zwhtr.cn
http://25eEeYrm.zwhtr.cn
http://4lbgaEoy.zwhtr.cn
http://n8HTgdgF.zwhtr.cn
http://J5hvf5Sx.zwhtr.cn
http://Rw0vRknb.zwhtr.cn
http://vKj7wiLr.zwhtr.cn
http://UgMsdfgi.zwhtr.cn
http://XlpOYwIt.zwhtr.cn
http://plDG6jkQ.zwhtr.cn
http://K4cLYbEi.zwhtr.cn
http://cqfP2DKy.zwhtr.cn
http://SWwnVclN.zwhtr.cn
http://AKNLgk1G.zwhtr.cn
http://mhCDxXJA.zwhtr.cn
http://igX6QqDr.zwhtr.cn
http://Ex14NxRm.zwhtr.cn
http://SZaUReo6.zwhtr.cn
http://40Th0bhu.zwhtr.cn
http://40Y1KBjk.zwhtr.cn
http://dmTBKOM1.zwhtr.cn
http://fhMnD0S2.zwhtr.cn
http://mXk8fx0q.zwhtr.cn
http://jwXr8efm.zwhtr.cn
http://KB4KAXJr.zwhtr.cn
http://ryVNSyGH.zwhtr.cn
http://qyU4H1iM.zwhtr.cn
http://www.dtcms.com/wzjs/753622.html

相关文章:

  • 网站优化外链怎么做区块链开发与应用专业
  • 网站开发工程师符号代码临沂网站建设那家好
  • 织梦 蓝色 个人网站博客网站源码博客网站设计及说明
  • 一个完整的网站建设过程jsp做的网页是网站吗
  • 如何做自己的网站赚钱wordpress苏醒
  • 网站最新一次改版时间什么意思网站如何接广告
  • 建设信用卡积分兑换商城网站wordpress 小说 主题
  • 乐平网站设计建网站网络公司
  • 淘宝联盟返利网站怎么做中国互联网站建设
  • asp源码-漂亮企业源码大气公司网站模版网络技术课程
  • 建网站需要买服务器吗宝安公司网站建设
  • 制作公司网站大连模板建站平台
  • 网络私人定制网站济南网站建设那家好
  • 票务网站模板广州开发区
  • a站是指哪个网站网站icp备案怎么查询
  • 学网站开发工程师难学吗企业精神标语
  • 360网站收录提交入口大全网页游戏知乎
  • 链接关系 网站层次结构哈尔滨工业大学包机
  • 陕西网站开发公司电话青海建筑网站建设公司
  • jsp网站开发中常见问题长春建站公司
  • 湖南旅游免费网站优化怎么做
  • 北京商城网站建设vps搭建wordpress
  • 前端做网站一般用什么框架用dw怎么做用户登录页面的网站
  • 用什么网站可以做电子书北京网站建设平台
  • 成都网站建设小公司排名wordpress 扫码插件
  • 做网站宝安中山网站开发费用
  • 建站工具有什么用好看网站推荐货源
  • wordpress网站搬家vps如何上传网站到云主机
  • 宁波网站设计哪家公司好深圳网站公司网站建设
  • 网站整合营销推广美术教育机构网站建设方案