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

centos 打开 wordpress知名seo网站优化公司

centos 打开 wordpress,知名seo网站优化公司,石家庄最好的网站建设公司哪家好,网站建设马鞍山目录 前言 1.常见命令 2.使用场景 前言 集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中1)元素之间是无序的2)元素不允许重复,如图2-24所示。一个集合中最多可以存储22 - 1个元素。Redis 除了支持集合内的增删查改操…

目录

前言

1.常见命令

2.使用场景


前言

集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中1)元素之间是无序的2)元素不允许重复,如图2-24所示。一个集合中最多可以存储22 - 1个元素。Redis 除了支持集合内的增删查改操作,同时还支持多个集合取交集、并集、差集,合理地使用好集合类型,能在实际开发中解决很多问题。
图2-24集合类型

1.常见命令

SADD
将一个或者多个元素添加到set中。注意,重复的元素无法添加到set中。
语法:

SADD key member [member ...]

命令有效版本: 1.0.0之后
时间复杂度: 0(1)
返回值:本次添加成功的元素个数。
示例:

redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "Hello"
2) "World"

SMEMBERS
获取一个set中的所有元素,注意,元素间的顺序是无序的。
语法:

SMEMBERS key 

命令有效版本: 1.0.0之后
时间复杂度: O(N) 
返回值:所有元素的列表。
示例:

redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SMEMBERS myset
1) "Hello"
2) "World"

SISMEMBER
判断一个元素在不在set中。
语法:

SISMEMBER key member 
redis> SADD myset "one"
(integer) 1
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0

SCARD
获取一个set的基数(cardinality) ,即set中的元素个数。
语法:

SCARD key 

命令有效版本: 1.0.0之后
时间复杂度: 0(1)
返回值: set 内的元素个数。
示例:

redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SCARD myset
(integer) 2

SPOP
从set中删除并返回一个或者多个元素。注意,由于set内的元素是无序的,所以取出哪个元素实际是未定义行为,即可以看作随机的。
语法:

SPOP key [count] 

命令有效版本: 1.0.0 之后
时间复杂度: O(N), n是count
返回值:取出的元素。
示例:

redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SPOP myset
"one"
redis> SMEMBERS myset
1) "three"
2) "two"
redis> SADD myset "four"
(integer) 1
redis> SADD myset "five"
(integer) 1
redis> SPOP myset 3
1) "three"
2) "four"
3) "two"
redis> SMEMBERS myset
1) "five"

SMOVE
将一个元素从源set取出并放入目标set中。
语法:

SMOVE source destination member 

命令有效版本: 1.0.0之后
时间复杂度: 0(1)
返回值: 1表示移动成功,0表示失败。
示例:

redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myotherset "three"
(integer) 1
redis> SMOVE myset myotherset "two"
(integer) 1
redis> SMEMBERS myset
1) "one"
redis> SMEMBERS myotherset
1) "three"
2) "two"

SREM 
将指定的元素从set中删除。
语法
:

SREM key member [member ...] 

命令有效版本: 1.0.0之后
时间复杂度: O(N), N是要删除的元素个数.
返回值:本次操作删除的元素个数。
示例:

redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SREM myset "one"
(integer) 1
redis> SREM myset "four"
(integer) 0
redis> SMEMBERS myset
1) "three"
2) "two"

集合间操作
交集(inter) 、并集(union) 、差集(diff) 的概念如图2-25所示。.
图2-25集合求交集、并集、差集

SINTER
获取给定set的交集中的元素。
语法:

SINTER key [key ...] 

命令有效版本: 1.0.0之后
时间复杂度:0(N*M),N是最小的集合元素个数.M是最大的集合元素个数.
返回值:交集的元素。
示例:

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTER key1 key2
1) "c"

SINTERSTORE
获取给定set的交集中的元素并保存到目标set中。
语法:

SINTERSTORE destination key [key ...] 

命令有效版本: 1.0.0之后
时间复杂度:O(N*M),N是最小的集合元素个数.M是最大的集合元素个数.
返回值:交集的元素个数。
示例:

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTERSTORE key key1 key2
(integer) 1
redis> SMEMBERS key
1) "c"

SUNION
获取给定set的并集中的元素。
语法:

SUNION key [key ...] 

命令有效版本: 1.0.0之后
时间复杂度: O(N), N给定的所有集合的总的元素个数.
返回值:并集的元素。
示例:

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNION key1 key2
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"

SUNIONSTORE 
获取给定set的并集中的元素并保存到目标set中。
语法:

SUNIONSTORE destination key [key ...] 

命令有效版本: 1.0.0之后
时间复杂度: 0(N), N给定的所有集合的总的元素个数.
返回值:并集的元素个数。
示例:

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNIONSTORE key key1 key2
(integer) 5
redis> SMEMBERS key
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"

SDIFF
获取给定set的差集中的元素。
语法:

SDIFF key [key ...] 

命令有效版本: 1.0.0之后
时间复杂度: O(N), N给定的所有集合的总的元素个数.
返回值:差集的元素。
示例: 

redis> SADD key1 "a" 
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFF key1 key2
1) "a"
2) "b"

SDIFFSTORE
获取给定set的差集中的元素并保存到目标set中。
语法:

SDIFFSTORE destination key [key ...] 

命令有效版本: 1.0.0 之后
时间复杂度: O(N), N给定的所有集合的总的元素个数.
返回值:差集的元素个数。
示例:

redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFFSTORE key key1 key2
(integer) 2
redis> SMEMBERS key
1) "a"
2) "b"

命令小结
表2-6总结了集合类型的常见命令,开发人员可以根据自身需求进行选择。
表2-6集合类型命令

内部编码
集合类型的内部编码有两种:
●intset (整数集合) :当集合中的元素都是整数并且元素的个数小于set-max- intset-entries配置
(默认512个)时,Redis 会选用intset来作为集合的内部实现,从而减少内存的使用。
●hashtable (哈希表) :当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合
的内部实现。
1)当元素个数较少并且都为整数时,内部编码为intset:

127.0.0.1:6379> sadd setkey 1 2 3 4
(integer) 4
127.0.0.1:6379> object encoding setkey
"intset" 

2)当元素个数超过512个,内部编码为hashtable:

127.0.0.1:6379> sadd setkey 1 2 3 4
(integer) 513
127.0.0.1:6379> object encoding setkey
"hashtable"

3)当存在元素不是整数时,内部编码为hashtable:

127.0.0.1:6379> sadd setkey a
(integer) 1
127.0.0.1:6379> object encoding setkey
"hashtable"

2.使用场景

集合类型比较典型的使用场景是标签(tag) 。例如A用户对娱乐、体育板块比较感兴趣,B用户对历史、新闻比较感兴趣,这些兴趣点可以被抽象为标签。有了这些数据就可以得到喜欢同一个标签的人,以及用户的共同喜好的标签,这些数据对于增强用户体验和用户黏度都非常有帮助。例如一个电子商务网站会对不同标签的用户做不同的产品推荐。
下面的演示通过集合类型来实现标签的若干功能。
1)给用户添加标签

sadd user:1:tags tag1 tag2 tag5
sadd user:2:tags tag2 tag3 tag5
...
sadd user:k:tags tag1 tag2 tag4

2)给标签添加用户

sadd tag1:users user:1 user:3
sadd tag2:users user:1 user:2 user:3
...
sadd tagk:users user:1 user:4 user:9 user:28

3)删除用户下的标签

srem user:1:tags tag1 tag5
...

4)删除标签下的用户

srem tag1:users user:1
srem tag5:users user:1
...

5)计算用户的共同兴趣标签

sinter user:1:tags user:2:tags

http://www.yingshimen.cn/news/673/

相关文章:

  • 怎样做网站吸引客户免费的创建个人网站
  • 专业的培训行业网站开发一个完整的营销策划方案范文
  • 铁道部建设管理司官方网站企业网站 三网系统
  • 2023网站推广入口网页制作个人简历的代码
  • 获取网站访客qq代码域名一个注册要多久
  • 网络公司网站报价方案wordpress 500一片空白
  • 设计网站视频教程wordpress html5中文主题
  • 如何在手机上搭建网站wordpress 多站点建站教程
  • 网站开发了下载文件需要怎样进入国外网站
  • 网页打不开建设银行网站泉州市城乡和建设网站
  • 濮阳做网站优化福步外贸
  • 清新区城乡建设局网站政务服务网站建设汇报
  • 建设网站一般要多少钱福建微网站建设
  • 南山商城网站建设哪家便宜中国全球门户网站
  • 深圳做网站那家公司好荣县做网站的
  • 网站源码素材wordpress和主题
  • 哪个网站可以做外贸wordpress前台加载谷歌字体
  • 石家庄网站建设电商宽屏大气企业网站源码
  • 网站关于页面最好看的直播免费的
  • 永定门网站建设游戏推广网站制作
  • 宁国网站建设|网站建设报价 - 新支点网站建设怎样维护网站建设
  • 网站的建设任务室内家装设计
  • 和田地区建设局网站东营城乡规划网
  • 有谁知道网站优化怎么做做php网站时如何建立数据库
  • 深圳专业网站建设企室内设计网站大全网
  • 吉林市 网站建设优化排名工具
  • 拓和科技有限公司网站外贸网站建设公司如何
  • python爬虫爬小说来做网站推广引流方法有哪些?
  • 自助建站模板宏润建设集团网站
  • 彩票做网站有没有做美食的小视频网站