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

织梦网站上线可以做英文纵横字谜的网站

织梦网站上线,可以做英文纵横字谜的网站,运营哪里学的比较专业,网络销售营业执照经营范围目录 Bitmaps简介常用命令bitmaps与set比较 HyperLoglog简介命令 Geographic简介命令 Bitmaps 简介 位操作字符串。 现代计算机使用二进制#xff08;位#xff09;作为信息的基本单位#xff0c;1个字节等于8位#xff0c;例如“abc”字符串是有3个字节组成#xff0c… 目录 Bitmaps简介常用命令bitmaps与set比较 HyperLoglog简介命令 Geographic简介命令 Bitmaps 简介 位操作字符串。 现代计算机使用二进制位作为信息的基本单位1个字节等于8位例如“abc”字符串是有3个字节组成但实际在计算机内存储时将其使用二进制表示“abc”分别对应的ASCII码是97、98、99对应的二进制分别是01100001、01100010、01100011如下图 合理地使用位操作能够有效地提高内存使用率和开发效率。 Redis提供了Bitmaps这个“数据类型”可以实现对位的操作 Bitmaps本身不是一种数据类型 实际上它就是字符串key-value 但是它可以对字符串的位进行操作字符串中每个字符对应1个字节也就是8位一个字符可以存储8个bit位信息。Bitmaps单独提供了一套命令 所以在Redis中使用Bitmaps和使用字符串的方法不太相同。 可以把Bitmaps想象成一个以位为单位的数组 数组的每个单元只能存储0和1 数组的下标在Bitmaps中叫做偏移量。 常用命令 setbit 设置某个偏移量的值0或1。 SETBIT key offset value设置offset偏移位的值为valueoffset的值是从0开始的n代表第n1个bit位置的。 offset 参数必须大于或等于 0 小于 2^32 (bit 映射被限制在 512 MB 之内)。 value 的值只能为0或1 **返回值**指定偏移量原来储存的位。 示例 redis SETBIT bit 10086 1 (integer) 0 redis GETBIT bit 10086 (integer) 1 redis GETBIT bit 100 # bit 默认被初始化为 0 (integer) 0例如每个独立用户是否访问过网站存放在bitmaps中将访问的用户记做1没有访问的用户记做0用户id作为offset。 假设现在有20个用户userid1,6,11,15,19的用户对网站进行了访问那么当前bitmaps初始化结果如图 users:20220409 这个bitmaps中表示2022-04-09这天独立访问的用户如下 127.0.0.1:6379 setbit users:20220409 1 1 (integer) 0 127.0.0.1:6379 setbit users:20220409 6 1 (integer) 0 127.0.0.1:6379 setbit users:20220409 11 1 (integer) 0 127.0.0.1:6379 setbit users:20220409 15 1 (integer) 0 127.0.0.1:6379 setbit users:20220409 19 1 (integer) 0getbit 获取某个偏移位的值. GETBIT key offset获取key所对应的bitmaps中offset偏移位的值。 返回值0或者1 示例 127.0.0.1:6379 setbit users 1001 1 #设置偏移量1001的bit位的值为1 (integer) 0 127.0.0.1:6379 getbit users 1001 #获取偏移位1001的bit位的值 (integer) 1 127.0.0.1:6379 getbit users 1000 #获取偏移位1000的bit位的值未设置返回0 (integer) 0bitcount 统计bit位都为1的数量 BITCOUNT key [start] [end]统计字符串被设置为1的bit数一般情况下给定的整个字符串都会被进行统计通过指定额外的 start或者end参数可以让计数只在特定的位上进行 start 和 end 参数都可以使用负数值 比如 -1 表示最后一个位而 -2 表示倒数第二个位以此类推。 注意了start、end是指bit组的字节的下标数一个直接对应8个bit所以[a,b]对应的offset范围是[8a,8b7] 示例 127.0.0.1:6379 setbit user 7 1 # 设置user这个bitmaps中偏移量为7的bit为值为1也就是第8 个bit位的值 (integer) 0 127.0.0.1:6379 setbit user 15 1 # 设置user这个bitmaps中偏移量为15的bit为值为1 (integer) 0 127.0.0.1:6379 setbit user 23 1 # 设置user这个bitmaps中偏移量为23的bit为值为1 (integer) 0 127.0.0.1:6379 bitcount user # 获取user这个bitmaps中1的数量 (integer) 3 127.0.0.1:6379 bitcount user 0 1 # 获取[0,1]这个字节内bit位上1的数量也就是offset是 [0,15]的位置上1的数量所以是2个 (integer) 2 127.0.0.1:6379 bitcount user 0 0 # 获取[0,0]这个字节内bit位上1的数量也就是offset是 [0,7]的位置上1的数量只有7这个位置所以是1个 (integer) 1bittop 对一个多个bitmaps执行位操作。 BITOP operation destkey key [key ...]对一个或多个保存二进制位的字符串 key 进行位元操作并将结果保存到 destkey 上。 operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种 BITOP AND destkey key [key ...] 对一个或多个 key 求逻辑并并将结果保存到destkey 。BITOP OR destkey key [key ...] 对一个或多个 key 求逻辑或并将结果保存到destkey 。BITOP XOR destkey key [key ...] 对一个或多个 key 求逻辑异或并将结果保存到destkey 。BITOP NOT destkey key 对给定 key 求逻辑非并将结果保存到 destkey 。 除了 NOT 操作之外其他操作都可以接受一个或多个 key 作为输入。 **返回值**保存到 destkey 的字符串的长度和输入 key 中最长的字符串长度相等。 示例 redis SETBIT bits-1 0 1 # bits-1 1001 (integer) 0 redis SETBIT bits-1 3 1 (integer) 0 redis SETBIT bits-2 0 1 # bits-2 1011 (integer) 0 redis SETBIT bits-2 1 1 (integer) 0 redis SETBIT bits-2 3 1 (integer) 0 redis BITOP AND and-result bits-1 bits-2 (integer) 1 redis GETBIT and-result 0 # and-result 1001 (integer) 1 redis GETBIT and-result 1 (integer) 0 redis GETBIT and-result 2 (integer) 0 redis GETBIT and-result 3 (integer) 1bitmaps与set比较 假设网站有 1 亿用户 每天独立访问的用户有 5 千万 如果每天用集合类型和 Bitmaps 分别存储活跃用户可以得到表 set 和 Bitmaps 存储一天活跃用户对比 很明显 这种情况下使用 Bitmaps 能节省很多的内存空间 尤其是随着时间推移节省的内存还是非常可观的。 set 和 Bitmaps 存储独立用户空间对比 但 Bitmaps 并不是万金油 假如该网站每天的独立访问用户很少 例如只有 10 万大量的僵尸用户 那么两者的对比如下表所示 很显然 这时候使用 Bitmaps 就不太合适了 因为基本上大部分位都是 0。 HyperLoglog 简介 在工作当中我们经常会遇到与统计相关的功能需求比如统计网站 PVPageView 页面访问量可以使用 Redis 的 incr、incrby 轻松实现。但像 UVUniqueVisitor 独立访客、独立 IP 数、搜索记录数等需要去重和计数的问题如何解决这种求集合中不重复元素个数的问题称为基数问题。 解决基数问题有很多种方案 数据存储在 MySQL 表中使用 distinct count 计算不重复个数。 使用 Redis 提供的 hash、set、bitmaps 等数据结构来处理。 以上的方案结果精确但随着数据不断增加导致占用空间越来越大对于非常大的数据集是不切实际的。能否能够降低一定的精度来平衡存储空间Redis 推出了 HyperLogLog。 Redis HyperLogLog 是用来做基数统计的算法HyperLogLog 的优点是在输入元素的数量或者体积非常非常大时计算基数所需的空间总是固定的、并且是很小的。 在 Redis 里面每个 HyperLogLog 键只需要花费 12 KB 内存就可以计算接近 2^64 个不同元素的基数。这和计算基数时元素越多耗费内存就越多的集合形成鲜明对比。 但是因为 HyperLogLog 只会根据输入元素来计算基数而不会储存输入元素本身所以HyperLogLog 不能像集合那样返回输入的各个元素。 什么是基数 比如数据集 {1, 3, 5, 7, 5, 7, 8}那么这个数据集的基数集为 {1, 3, 5 ,7, 8}基数 (不重复元素) 为 5。 基数估计就是在误差可接受的范围内快速计算基数。 命令 pfadd 添加多个元素。 pfadd key element [element ...]向HyperLoglog类型的key中添加一个或者多个元素。添加一个或者多个元素到key对应的集合中。 **返回值**1添加成功0添加失败 示例 127.0.0.1:6379 pfadd program java php c c # program中添加4个元素 [java,php,c,c]添加成功发返回1 (integer) 1 127.0.0.1:6379 pfadd program java # 再次添加java由于已经存在所以添加失败返回0 (integer) 0 127.0.0.1:6379 pfadd program java js # 再次添加2个元素java已经存在了但是js不存在 添加成功返回1 (integer) 1pfcount 获取多个HLL合并后元素的个数。 pfcount key1 key2 ...统计一个或者多个key去重后元素的数量。 示例 127.0.0.1:6379 pfadd uv1 a b c d e #uv1中5个元素[a,b,c,d,e] (integer) 1 127.0.0.1:6379 pfcount uv1 #uv1中数量为5 (integer) 5 127.0.0.1:6379 pfadd uv2 b c d e f #uv2中5个元素[b,c,d,e,f] (integer) 1 127.0.0.1:6379 pfcount uv2 #uv2中数量为5 (integer) 5 127.0.0.1:6379 pfcount uv1 uv2 # 获取uv1和uv2去重之后数量合集[a,b,c,d,e,f]数量为5 (integer) 5pfmerge 将多个HLL合并后元素放入另外一个HLL pfmerge destkey sourcekey [sourcekey ...]将多个 sourcekey 合并后放到 destkey 中。 示例 127.0.0.1:6379 pfadd uv1 a b c d e #uv1中5个元素[a,b,c,d,e] (integer) 1 127.0.0.1:6379 pfcount uv1 #uv1中数量为5 (integer) 5 127.0.0.1:6379 pfadd uv2 b c d e f #uv2中5个元素[b,c,d,e,f] (integer) 1 127.0.0.1:6379 pfcount uv2 #uv2中数量为5 (integer) 5 127.0.0.1:6379 pfmerge uv_dest uv1 uv2 #将uv1和uv2合并后放入uv_dest OK 127.0.0.1:6379 pfcount uv_dest #uv_dest元素个数为6 (integer) 6Geographic 简介 Reids3.2 中增加了对GEO类型的支持GEOGeographic地理信息的缩写。该类型就是元素的 2 维坐标在地图上就是经纬度redis基于该类型提供了经纬度设置、查询、范围查询、距离查询经纬度Hash等常见操作。 命令 geoadd 添加多个位置的经纬度。 geoadd key longitude latitude member [longitude latitude member ...]longitude latitude member经度 纬度 名称 示例 127.0.0.1:6379 geoadd china:city 121.47 31.23 shanghai #添加上海的经纬度 (integer) 1 127.0.0.1:6379 geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 116.38 39.90 beijing #添加重庆、深圳、北京 3 个城市的经纬度 (integer) 3 127.0.0.1:6379 type china:city #发现geo实际上使用zset类型存储的 zset 127.0.0.1:6379 zrange china:city 0 -1 1) chongqing 2) shenzhen 3) shanghai 4) beijing 127.0.0.1:6379 zrange china:city 0 -1 withscores 1) chongqing 2) 4026042091628984 3) shenzhen 4) 4046432193584628 5) shanghai 6) 4054803462927619 7) beijing 8) 4069885332386336两级无法直接添加一般会下载城市数据直接通过java程序一次性导入。 有效的经纬度从-180度到180度有效的维度从-85.05112878度到85.05112878度。 当坐标位置超出指定范围时该命令将会返回一个错误。 已经添加的数据是无法再次往里面添加的。 geopos 获取多个位置的坐标值 geopos key member [member ...]示例 127.0.0.1:6379 geoadd china:city 121.47 31.23 shanghai #添加上海的经纬度 (integer) 1 127.0.0.1:6379 geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 116.38 39.90 beijing #添加重庆、深圳、北京 3 个城市的经纬度 (integer) 3 127.0.0.1:6379 geopos china:city wuhan beijing chongqing #获取武汉、北京、重庆 3个城 市的坐标由于没有添加武汉的数据所以没有获取到其他2个获取到了 1) (nil) 2) 1) 116.38000041246414185 2) 39.90000009167092543 3) 1) 106.49999767541885376 2) 29.52999957900659211geodist 获取两个位置的直线距离 geodist key member1 member2 [m|km|ft|mi]单位[m|km|ft|mi] -》[米|千米|英里|英尺]默认为米 示例 127.0.0.1:6379 geoadd china:city 121.47 31.23 shanghai #添加上海的经纬度 (integer) 1 127.0.0.1:6379 geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 116.38 39.90 beijing #添加重庆、深圳、北京 3 个城市的经纬度 (integer) 3 127.0.0.1:6379 geodist china:city beijing chongqing km #获取北京到重庆的直线距离 1462.9505georadius 以给定的经纬度为中心找出某一半径内的元素 georadius key longitude latitude radius m|km|ft|mi单位[m|km|ft|mi] -》[米|千米|英里|英尺]默认为米 示例 127.0.0.1:6379 geoadd china:city 121.47 31.23 shanghai #添加上海的经纬度 (integer) 1 127.0.0.1:6379 geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 116.38 39.90 beijing #添加重庆、深圳、北京 3 个城市的经纬度 (integer) 3 127.0.0.1:6379 georadius china:city 110 30 1000 km #在china:city中检索以经纬度 (110,30)为中心半径为1000km内的位置列表 1) chongqing 2) shenzhen
http://www.huolong8.cn/news/52075/

相关文章:

  • 有没有专门做布料的网站网站创建风格
  • nike网站建设方案网上销售网站建设
  • 投资理财网站建设规划书怎样建移动网站
  • 什么网站 是cms系统下载地址wordpress wp head
  • 创建电子商务网站的7个步骤企业网页设计与推广
  • 企业高端网站建设公司网站如何被收录
  • 广州网站建设找哪家网站后台管理系统需求
  • 库车县建设网站做电子元器件的网站
  • 临沭县住房和城乡建设局网站深圳品牌网站设计公司
  • 易云自助建站一直免费的服务器下载
  • 怎么用大淘客做网站东莞活动外包
  • 网站秒收录怎么做的有赞微商城小程序
  • 西安企业网站备案一般得多少天深圳新闻最新事件
  • 招标网站平台天津深圳网站开发定制
  • 游戏开发难还是网站开发难什么网站可以做任务领赏金
  • 上海自适应网站设计郑州网站建设那家好
  • 诸城盟族网站建设网站相关推荐怎么做
  • 网站网站建设平台注册公司是在哪个网站
  • 最新的购物网站 开广告公司叫什么名字好
  • 网站分析怎么做的万维网 网站到期
  • wordpress 导入html网站排名优化价格
  • 网站seo排名优化方法织梦门户网站源码下载
  • 网站制作的网站开发网站设计O2O平台优化
  • 网站访问统计js代码客户管理系统源代码
  • 鲜花网站建设论文网站建设找丿金手指排名
  • wordpress转换中文版怎样进行seo优化
  • 网站主导航设置问题wordpress 文章聚合
  • 手机网站微信登陆wordpress 移动app
  • 精品网站建设费用wordpress整合问答系统
  • 大丰市市城乡建设局网站做一个招聘信息的网站_用什么做网站的软件