系統(tǒng)運(yùn)維 Redis簡(jiǎn)介
Redis 是一個(gè)開源的使用 ANSI C 語(yǔ)言編寫、遵守 BSD 協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value 數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的 API。
它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因?yàn)橹?value)可以是 字符串(String), 哈希(Map),列表(list),集合(sets)和 有序集合(sorted sets)等類型。

$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
$ tar xzf redis-5.0.5.tar.gz
$ cd redis-5.0.5
$ make
以后臺(tái)方式啟動(dòng)Redis
修改Redis.conf文件將daemonize on
修改為
daemonize yes
啟動(dòng)Redis
src/redis-server redis.conf開機(jī)啟動(dòng)Redis執(zhí)行安裝腳本,一直默認(rèn)就可以
./utils/install_server.sh mv /etc/init.d/redis_6379 /etc/init.d/redis
設(shè)置Redis密碼
vim /etc/redis/6379.conf
requirepass redispass
service redis restart再次連接發(fā)現(xiàn)需要輸入密碼
Redis命令 全局命令 獲取鍵keys patternkeys還支持通配符
127.0.0.1:6379> set we hello
OK
127.0.0.1:6379> keys *
1) we
127.0.0.1:6379> set name wanger
OK
127.0.0.1:6379> keys name
1) name
127.0.0.1:6379> keys *
1) name
2) we
刪除鍵keys 命令遍歷了Redis中所有的鍵,當(dāng)鍵的數(shù)量過多時(shí)會(huì)影響Redis性能
del key1 key2 ..例如:
127.0.0.1:6379> keys *
1) qwe
2) asd
3) we
127.0.0.1:6379> del asd qwe
(integer) 2
127.0.0.1:6379> keys *
1) we
判斷鍵是否存在
exists key1 key2例如:
127.0.0.1:6379> exists we
(integer) 1
127.0.0.1:6379> exists name
(integer) 0
127.0.0.1:6379> set qwe 2
OK
127.0.0.1:6379> exists we qwe
(integer) 2
127.0.0.1:6379> exists we name
(integer) 1
獲取鍵的總數(shù)
dbsize例如:
127.0.0.1:6379> dbsize
(integer) 2
127.0.0.1:6379> keys *
1) qwe
2) we
獲取鍵的數(shù)據(jù)類型
type key例如:
127.0.0.1:6379> type we
string
127.0.0.1:6379> lpush list1 1 2 3
(integer) 3
127.0.0.1:6379> type list1
list
對(duì)列表、集合、有序集合的元素進(jìn)行排序
sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]例如:
127.0.0.1:6379> lrange list 0 -1
1) 5
2) 7
3) 2
4) 4
5) 3
6) 1
sort list desc limit 0 5
1) 7
2) 5
3) 4
4) 4
5) 3
127.0.0.1:6379> lpush list2 asd qwe zxc
(integer) 3
sort list2 desc limit 0 5 alpha
1) zxc
2) qwe
3) asd
清空數(shù)據(jù)庫(kù)
flushdb //清空當(dāng)前數(shù)據(jù)庫(kù)
flushall //清空所有數(shù)據(jù)庫(kù)例如:
127.0.0.1:6379[11]> set a 1
OK
127.0.0.1:6379[11]> get a
1
127.0.0.1:6379[11]> flushdb
OK
127.0.0.1:6379[11]> get a
(nil)
將指定的鍵移動(dòng)到其他數(shù)據(jù)庫(kù)
move key db 例如:
127.0.0.1:6379[11]> set a 1
OK
127.0.0.1:6379[11]> move a 2
(integer) 1
127.0.0.1:6379[11]> select 2
OK
127.0.0.1:6379[2]> get a
1
字符串字符串類型是Redis最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),字符串類型是其他幾種數(shù)據(jù)類型的基礎(chǔ),他能存儲(chǔ)任何形式的字符串,包括二進(jìn)制數(shù)據(jù)
設(shè)值取值set key value [EX seconds] [PX milliseconds] [NX|XX]
get key
nx:鍵必須不存在,才可以設(shè)置成功,用于添加。
xx:與nx相反,鍵必須存在,才可以設(shè)置成功,用于更新
例如:
127.0.0.1:6379> set name wanger
OK
127.0.0.1:6379> get name
wanger
127.0.0.1:6379> setnx name wanger
(integer) 0
127.0.0.1:6379> set name wang xx
OK
批量設(shè)值取值
mset key1 value1 key2 value2 ..
mget key1 key2例如:
127.0.0.1:6379> mset key1 1 key2 2
OK
127.0.0.1:6379> mget key1 key2
1) 1
2) 2
對(duì)鍵值自增自減
incr key
decr key例如:
127.0.0.1:6379> incr key1
(integer) 2
127.0.0.1:6379> incr key2
(integer) 3
127.0.0.1:6379> get key1
2
127.0.0.1:6379> get key2
3
127.0.0.1:6379> get we
hello
127.0.0.1:6379> incr we
(error) ERR value is not an integer or out of range
127.0.0.1:6379> decr key1
(integer) 1
127.0.0.1:6379> decr key2
(integer) 2
追加值
append key value例如:
127.0.0.1:6379> append key hello
(integer) 5
127.0.0.1:6379> append key world
(integer) 10
127.0.0.1:6379> get key
helloworld
獲取字符串長(zhǎng)度
strlen key例如:
127.0.0.1:6379> get key
helloworld
127.0.0.1:6379> strlen key
(integer) 10
127.0.0.1:6379> set name 王二
OK
127.0.0.1:6379> strlen name
(integer) 6
設(shè)置和獲取指定位置的字符串
setrange key offset value
getrange key start end例如:
127.0.0.1:6379> SET key1 Hello World
OK
127.0.0.1:6379> setrange key1 6 Redis
(integer) 11
127.0.0.1:6379> get key1
Hello Redis
127.0.0.1:6379> getrange key1 6 12
Redis
字符串對(duì)象編碼字符串類型的內(nèi)部編碼有3種:
int:8個(gè)字節(jié)的長(zhǎng)整型。 embstr:小于等于39個(gè)字節(jié)的字符串。 raw:大于39個(gè)字節(jié)的字符串。例如:
127.0.0.1:6379> set num 123456
OK
127.0.0.1:6379> object encoding num
int
127.0.0.1:6379> set short qweasd
OK
127.0.0.1:6379> object encoding short
embstr
127.0.0.1:6379> set raw when you love me I have lost of plot wow wow
OK
127.0.0.1:6379> object encoding raw
raw
列表Redis列表可以存儲(chǔ)一個(gè)有序的字符串列表,內(nèi)部使用雙向鏈表實(shí)現(xiàn),雙向鏈表作為一種常見的數(shù)據(jù)結(jié)構(gòu),雙向鏈表的每個(gè)數(shù)據(jù)節(jié)點(diǎn)都有兩個(gè)指針,分別指向后繼與前驅(qū)節(jié)點(diǎn),從雙向鏈表中的任意一個(gè)節(jié)點(diǎn)開始都可以很方便地訪問其前驅(qū)與后繼節(jié)點(diǎn),因此獲取越接近兩端的元素就越快
從左右兩邊插入元素或者從某一個(gè)元素前后插入數(shù)據(jù)lpush key value1 value2 value3
rpush key value1 value2 value3
linsert key BEFORE|AFTER pivot value例如:
127.0.0.1:6379> lpush names 1 2 3 4
(integer) 4
127.0.0.1:6379> lrange names 0 4
1) 4
2) 3
3) 2
4) 1
127.0.0.1:6379> rpush nums 1 2 3 4
(integer) 4
127.0.0.1:6379> lrange nums 0 4
1) 1
2) 2
3) 3
4) 4
127.0.0.1:6379> linsert nums before 2 5
(integer) 5
127.0.0.1:6379> lrange nums 0 5
1) 1
2) 5
3) 2
4) 3
5) 4
從列表兩端刪除元素
lpop key
rpop key例如:
127.0.0.1:6379> lrange nums 0 5
1) 1
2) 5
3) 2
4) 3
5) 4
127.0.0.1:6379> lpop nums
1
127.0.0.1:6379> rpop nums
4
127.0.0.1:6379> lrange nums 0 5
1) 5
2) 2
3) 3
獲取給定位置上的元素
lindex key index例如:
127.0.0.1:6379> lrange nums 0 5
1) 5
2) 2
3) 3
127.0.0.1:6379> lindex nums 2
3
127.0.0.1:6379> lindex nums 1
2
127.0.0.1:6379> lindex nums -1
3
獲取給定范圍的元素
lrange key start stop例如:
127.0.0.1:6379> lrange nums 0 1
1) 5
2) 2
127.0.0.1:6379> lrange nums 0 2
1) 5
2) 2
3) 3
獲取列表長(zhǎng)度
llen key例如:
127.0.0.1:6379> lrange nums 0 3
1) 5
2) 2
3) 3
127.0.0.1:6379> llen nums
(integer) 3
從列表中刪除值
lrem key count value
count > 0:刪除數(shù)量為count的從頭到尾移動(dòng)的值為value的元素。
count < 0:刪除數(shù)量為count的從尾到頭移動(dòng)的值為value的元素。
count = 0:刪除所有等于value的元素。
例如:
127.0.0.1:6379> lrange mylist 0 10
1) 1
2) 2
3) 3
4) 4
5) 5
6) 2
7) 3
8) 4
9) 5
10) 5
127.0.0.1:6379> lrem mylist 1 5
(integer) 1
127.0.0.1:6379> lrange mylist 0 10
1) 1
2) 2
3) 3
4) 4
5) 2
6) 3
7) 4
8) 5
9) 5
127.0.0.1:6379> lrem mylist -2 5
(integer) 2
127.0.0.1:6379> lrange mylist 0 10
1) 1
2) 2
3) 3
4) 4
5) 2
6) 3
7) 4
127.0.0.1:6379> lrem mylist 0 2
(integer) 2
127.0.0.1:6379> lrange mylist 0 11
1) 1
2) 3
3) 4
4) 3
5) 4
修改指定索引的元素
lset key index value例如:
127.0.0.1:6379> lrange mylist 0 6
1) 1
2) 3
3) 4
4) 3
5) 4
127.0.0.1:6379> lset mylist 1 5
OK
127.0.0.1:6379> lrange mylist 0 6
1) 1
2) 5
3) 4
4) 3
5) 4
阻塞操作blpop和brpop分別是lpop和rpop的阻塞版本,功能類似,當(dāng)列表為空時(shí),會(huì)發(fā)生阻塞,timeout可定義阻塞時(shí)間,timeout為0時(shí)將一直阻塞,直到在另一個(gè)客戶端中往列表中加入元素
blpop key1 key2 timeout
brpop key1 key2 timeout例如:
127.0.0.1:6379> lrange list2 0 4
1) 4
2) 3
3) 2
127.0.0.1:6379> lrange list1 0 4
1) 8
2) 7
127.0.0.1:6379> blpop list1 list2 0
1) list1
2) 8
127.0.0.1:6379> brpop list1 list2 0
1) list1
2) 7
127.0.0.1:6379> brpop list1 list2 0
1) list2
2) 2
127.0.0.1:6379> brpop list1 list2 0
1) list2
2) 3
127.0.0.1:6379> brpop list1 list2 0
1) list2
2) 4
127.0.0.1:6379> brpop list1 list2 0
1) list2
2) 1
(18.49s)
在另一個(gè)客戶端執(zhí)行
127.0.0.1:6379> lpush list2 1
(integer) 1
列表內(nèi)部編碼
ziplist(壓縮列表):列表元素保存的所有字符串元素的長(zhǎng)度都小于64字節(jié)且元素?cái)?shù)量小于512個(gè)時(shí)使用ziplist編碼
linkedlist(鏈表):當(dāng)列表類型無(wú)法滿足兩個(gè)條件的任意一個(gè)的時(shí)候,redis會(huì)使用linkedlist作為列表的內(nèi)部實(shí)現(xiàn)
quicklist:list的內(nèi)部實(shí)現(xiàn)quicklist是一個(gè)ziplist的雙向鏈表,雙向鏈表是由多個(gè)節(jié)點(diǎn)(Node)組成的,quicklist的每個(gè)節(jié)點(diǎn)都是一個(gè)ziplist。
哈希參考張鐵蕾http://zhangtielei.com/posts/blog-redis-quicklist.html
哈希是由與值關(guān)聯(lián)的字段組成的映射。字段和值都是字符串,哈希類型中的映射關(guān)系叫作field-value
設(shè)值取值hset key field value
hget key field例如:
127.0.0.1:6379> hset ha name wanger
(integer) 1
127.0.0.1:6379> hget ha name
wanger
批量設(shè)值取值
hmset key field1 value1 field2 value2
hmget key field1 field2例如:
127.0.0.1:6379> hmset he name wanger sex nan
OK
127.0.0.1:6379> hmget he name sex
1) wanger
2) nan
刪除field
hdel key field1 field2例如:
127.0.0.1:6379> hdel he name
(integer) 1
127.0.0.1:6379> hget he name
(nil)
獲取field個(gè)數(shù)
hlen key例如:
127.0.0.1:6379> hmset he name wanger sex nan age 18
OK
127.0.0.1:6379> hlen he
(integer) 3
獲取哈希中的所有字段和值
hgetall key例如:
127.0.0.1:6379> hgetall he
1) sex
2) nan
3) name
4) wanger
5) age
6) 18
獲取哈希中的所有字段
hkeys key例如:
127.0.0.1:6379> hkeys he
1) sex
2) name
3) age
判斷哈希字段是否存在
hexists key field例如:
127.0.0.1:6379> hexists he name
(integer) 1
127.0.0.1:6379> hexists he sex
(integer) 1
將哈希字段的值遞增
hincrby key field increment例如:
127.0.0.1:6379> hincrby asd asdf 2
(integer) 3
127.0.0.1:6379> hget asd asdf
3
127.0.0.1:6379> hincrby asd asdf 2
(integer) 5
127.0.0.1:6379> hget asd asdf
5
獲取哈希中的所有值
hvals key例如:
127.0.0.1:6379> hvals he
1) nan
2) wanger
3) 18
內(nèi)部編碼:
ziplist(壓縮列表):當(dāng)哈希類型元素個(gè)數(shù)小于hash-max-ziplist-entries配置(默認(rèn)512個(gè))、同時(shí)所有值都小于hash-max-ziplist-value配置(默認(rèn)64字節(jié))時(shí),Redis會(huì)使用ziplist作為哈希的內(nèi)部實(shí)現(xiàn),ziplist使用更加緊湊的結(jié)構(gòu)實(shí)現(xiàn)多個(gè)元素的連續(xù)存儲(chǔ),所以在節(jié)省內(nèi)存方面比hashtable更加優(yōu)秀。
hashtable(哈希表):當(dāng)哈希類型無(wú)法滿足ziplist的條件時(shí),Redis會(huì)使用hashtable作為哈希的內(nèi)部實(shí)現(xiàn),因?yàn)榇藭r(shí)ziplist的讀寫效率會(huì)下降,而hashtable的讀寫時(shí)間復(fù)雜度為O(1)
例如:
127.0.0.1:6379> hset ziplist hash 12335452335235fwgvsfwbhfbwhhfwuesrfhwueywhufgbrewfghusfhwueughsajkifo34ejigji
(integer) 1
127.0.0.1:6379> hmset hash asd fcfg zdf fty
OK
集合唯一且無(wú)序的字符串元素的集合。
將一個(gè)或多個(gè)成員添加到集合中sadd key member1 member2 例如
127.0.0.1:6379> sadd set s1 s2
(integer) 0
獲取集合所有值
smembers key例如:
127.0.0.1:6379> smembers set
1) s2
2) s1
3) s3
刪除集合的元素
srem key member1 members2例如:
127.0.0.1:6379> srem set s2
(integer) 1
127.0.0.1:6379> smembers set
1) s1
2) s3
獲取元素的長(zhǎng)度
scard key例如:
127.0.0.1:6379> scard set
(integer) 2
隨機(jī)獲取指定個(gè)數(shù)的元素
srandmember key [count]例如:
127.0.0.1:6379> srandmember set 1
1) s1
判斷元素是否在集合中
sismember key member例如:
127.0.0.1:6379> sismember set s2
(integer) 0
127.0.0.1:6379> sismember set s3
(integer) 1
從集合中彈出指定數(shù)量的元素
spop key [count]例如:
127.0.0.1:6379> smembers set
1) s5
2) s4
3) s1
4) s3
127.0.0.1:6379> spop set
s4
127.0.0.1:6379> spop set 3
1) s5
2) s1
3) s3
127.0.0.1:6379> smembers set
(empty list or set)
集合間的并集運(yùn)算
sunion key1 key2 例如:
127.0.0.1:6379> sadd set1 1 2 3
(integer) 3
127.0.0.1:6379> sadd set2 2 3 4 5
(integer) 4
127.0.0.1:6379> sunion set1 set2
1) 1
2) 2
3) 3
4) 4
5) 5
集合間的交集運(yùn)算
sinter key1 key2例如:
127.0.0.1:6379> sinter set1 set2
1) 2
2) 3
集合間的差集運(yùn)算
sdiff key1 key2例如:
127.0.0.1:6379> sdiff set1 set2
1) 1
127.0.0.1:6379> sdiff set2 set1
1) 4
2) 5
內(nèi)部編碼
intset(整數(shù)集合):當(dāng)集合中的元素都是整數(shù)且元素個(gè)數(shù)小于set-max-intset-entries配置(默認(rèn)512個(gè))時(shí),Redis會(huì)選用intset來作為集合的內(nèi)部實(shí)現(xiàn),從而減少內(nèi)存的使用。
hashtable(哈希表):當(dāng)集合類型無(wú)法滿足intset的條件時(shí),Redis會(huì)使用hashtable作為集合的內(nèi)部實(shí)現(xiàn)。
例如:
127.0.0.1:6379> sadd set3 s1 s2 s3
(integer) 3
127.0.0.1:6379> object encoding set3
hashtable
127.0.0.1:6379> sadd set4 1 2 3
(integer) 3
127.0.0.1:6379> object encoding set4
intset
有序集合每個(gè)字符串元素都與一個(gè)稱為score的浮點(diǎn)值相關(guān)聯(lián)。元素總是按它們的分?jǐn)?shù)排序,因此與Sets不同,可以檢索一系列元素
添加元素zadd key [NX|XX] [CH] [INCR] score1 member1 score2 member2例如:
127.0.0.1:6379> zadd score xx 80 wanger 80 huazai 95 dongdong +inf a
(integer) 0
127.0.0.1:6379> zrange score 0 -1
1) huazai
2) wanger
3) dongdong
4) a
+inf和-inf分別表示正無(wú)窮和負(fù)無(wú)窮
獲取某個(gè)成員的分?jǐn)?shù)
zscore key member例如:
127.0.0.1:6379> zscore score dongdong
95
對(duì)成員進(jìn)行排名,從0開始
zrange key start end [withscores] #升序排列
zrevrange key start end [withscores] #降序排列例如:
127.0.0.1:6379> zadd score 95 huazai 90 wanger 85 dongdong +inf a
(integer) 0
127.0.0.1:6379> zrank score huazai
(integer) 2
127.0.0.1:6379> zrevrank score huazai
(integer) 1
127.0.0.1:6379> zrevrank score a
(integer) 0
127.0.0.1:6379> zrange score 0 -1 WITHSCORES
1) dongdong
2) 85
3) wanger
4) 90
5) huazai
6) 95
7) a
8) inf
獲取成員個(gè)數(shù)
zcard key例如:
127.0.0.1:6379> zcard score
(integer) 4
刪除成員
zrem key member1 member2例如:
127.0.0.1:6379> zrem score dongdong
(integer) 1
127.0.0.1:6379> zrange score 0 -1
1) wanger
2) huazai
3) a
增加成員的分?jǐn)?shù)
zincrby key increment member例如:
127.0.0.1:6379> zincrby score 5 wanger
95
獲取指定分?jǐn)?shù)范圍的成員
zrangebyscore key min max [withscores] [limit offset count] #升序
zrevrangebyscore key max min [withscores] [limit offset count] #降序例如:
127.0.0.1:6379> zrangebyscore score 80 90 withscores
1) dongdong
2) 85
3) wanger
4) 90
127.0.0.1:6379> zrevrangebyscore score 95 80 withscores
1) huazai
2) 95
3) wanger
4) 90
5) dongdong
6) 85
獲取指定分?jǐn)?shù)范圍成員個(gè)數(shù)
zcount key min max例如:
127.0.0.1:6379> zcount score 85 95
(integer) 3
刪除指定分?jǐn)?shù)范圍的成員
zremrangebyscore key min max例如:
127.0.0.1:6379> zremrangebyscore score 85 90
(integer) 2
有序集合的交集運(yùn)算
zinterstore destination numkeys key1 key2 [WEIGHTS weight]
destination:交集計(jì)算結(jié)果保存到這個(gè)鍵。
numkeys:需要做交集計(jì)算鍵的個(gè)數(shù)。
key[key...]:需要做交集計(jì)算的鍵。
weights weight[weight...]:每個(gè)鍵的權(quán)重,在做交集計(jì)算時(shí),每個(gè)鍵中
的每個(gè)member會(huì)將自己分?jǐn)?shù)乘以這個(gè)權(quán)重,每個(gè)鍵的權(quán)重默認(rèn)是1。
aggregate sum|min|max:計(jì)算成員交集后,分值可以按照sum(和)、
min(最小值)、max(值)做匯總,默認(rèn)值是sum。
最終的結(jié)果就是權(quán)重乘分?jǐn)?shù),之后再進(jìn)行聚合
例如:
127.0.0.1:6379> zadd user 10 wanger 20 huazai 30 dongdong
(integer) 3
127.0.0.1:6379> zadd user1 15 wanger 35 huazai
(integer) 2
127.0.0.1:6379> zinterstore userset 2 user user1
(integer) 2
127.0.0.1:6379> zrange userset 0 -1 withscores
1) wanger
2) 25
3) huazai
4) 55
127.0.0.1:6379> zinterstore user2set 2 user user1 weights 1 0.5 aggregate min
(integer) 2
127.0.0.1:6379> zrange user2set 0 -1 withscores
1) wanger
2) 7.5
3) huazai
4) 17.5
有序集合的并集計(jì)算
zunionstore destination numkeys key [key ...] [WEIGHTS weight]例如:
127.0.0.1:6379> zadd user 10 wanger 20 huazai 30 dongdong
(integer) 3
127.0.0.1:6379> zadd user1 15 wanger 35 huazai
(integer) 2
127.0.0.1:6379> zunionstore user3set 2 user user1 weights 1 0.5 aggregate max
(integer) 3
127.0.0.1:6379> zrange user3set 0 -1 withscores
1) wanger
2) 10
3) huazai
4) 20
5) dongdong
6) 30
內(nèi)部編碼
ziplist(壓縮列表):當(dāng)有序集合的元素小于zset-max-ziplist-entries配置(默認(rèn)是128個(gè)),同時(shí)每個(gè)元素的值都小于zset-max-ziplist-value(默認(rèn)是64字節(jié))時(shí),Redis會(huì)用ziplist來作為有序集合的內(nèi)部編碼實(shí)現(xiàn),ziplist可以有效的減少內(nèi)存的使用
skiplist(跳躍表):當(dāng)ziplist的條件不滿足時(shí),有序集合將使用skiplist作為內(nèi)部編碼的實(shí)現(xiàn),來解決此時(shí)ziplist造成的讀寫效率下降的問題.
例如:
127.0.0.1:6379> zadd sortset1 10 a 20 b 30 c
(integer) 3
127.0.0.1:6379> object encoding sortset1
ziplist
127.0.0.1:6379> zadd sortset2 10 a 20 b 30 cddddddddddddddddddddddffffffffffffffffffffffffwfwfwggggggggggggggggggwg4yhhhhhhhhhhhhhhhh
(integer) 3
127.0.0.1:6379> object encoding sortset2
skiplist
歡迎關(guān)注我的公號(hào)“沒有故事的陳師傅”
本文標(biāo)題:Redis五種數(shù)據(jù)類型
本文URL:http://chinadenli.net/article4/cjisie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、微信小程序、服務(wù)器托管、用戶體驗(yàn)、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)