天天看點

nosql資料庫中之redis資料庫一攬子方案

netstat  -tunpl | grep redis-server   顯示端口在使用 netstat–tunpl | grep 6379 解決: ps–aux | grep redis-server pkill redis-server Kill -9 9999 kill -9 1762 /usr/local/redis/bin/redis-server  /usr/local/redis/redis.conf /usr/local/redis/bin/redis-cli 資料類型 nosql 資料庫中之 redis 資料庫 一、NoSQL , ( Not Only SQL ),泛指非關系型資料庫。 1.NoSql的特點?   a).Key-value b).不支援sql語句 c.)沒有表結構 2常見關系型資料庫與非關系型資料庫?      關系型:mysql、Oracle、SQLServerr等;      非關系型:redis, mongodb等; 3.redis支援哪些資料類型?      hash(哈希);string(字元串);list(連結清單);set(集合); Zset(有序集合) 二、redis安裝 - 1.Reids安裝需要哪幾步?   從安裝到使用4步;   a.)解壓軟體 tar –zxfv   b.)make編譯;注意:編譯!=安裝;   c.)安裝 make PREFIX= 目錄 install;   d.)複制config,啟動服務;注意:server後面跟那個conf 就由哪個conf啟動 - 2.如何将Redis安裝為服務?    config   17行 daemonize 改為yes;  檢視行号 :set un; - 3.如何重新開機Redis?    檢視 netstat –tunpl | grep redis   pkill redis-server   檢視  pr –ef |grep redis;     4.redis 端口  6379 三、Redis安全性設定 1.如何設定密碼? Redis.conf  [108] requirepass foobared  可能用到指令:set nu  ; 2.如何登入? 2.1:方法1 ./redis-cli –a password 2.2:方法2 登入後 auth password 四、Redis- String,hash,list,set,Zset5種資料類型和其他指令--詳見redis-1表 1、string鍵值對 set name xiaoyun get name setnx setex color 10 red,10秒後過期 mset 鍵名 1  值 1  鍵名 2 值 2…………… msetnx 鍵名 1  值 1  鍵名 2 值 2…………… getset name xiaop設定新值傳回舊值 strlen name 傳回長度 getrange name 0 3 mget name age incr age  自增操作,每執行一次自動加 1 incrby age 100 追加100 decr 同 incr 一樣,自減操作。decr age decrby 指定減去的值。decrby age 100 append 追加字元串 2、哈希類型 1.Hash資料類型?     像我們上學時候的課本?eg:國文 ===key 課文标題===field  課文内容 === value    hset key   field   value例:hset ha1 name xiaopen hget key   field例:hget ha1 name hsetnx如果field存在則設定不成功,傳回0 hmset key( 哈希的名稱 )   field1  value1  field1 value2例:hmset ha2 name xiaozhao age 30 hmget ha2 name age hincrby    key  field  number( 加的數值 )例: hincrby ha2 age 100 hexists key  field     例hexists ha2 age hdel  key  field hkeys  key hvals key hgetall 傳回哈希裡面所有的 field 和 value

3 、 lists 類型及操作 棧,先進後出;隊列,先進先出 lpush  key value     例lpush list1 one 類似 lrange key  0   -1 rpush     rpush list zero 從尾部向連結清單裡面添加資料(字元串類型) lset list 1 dagang linsert key  before tow  xiaogang 在 two 元素的前面添加一個元素( xiaogang ) lset list 1 xiaobai lindex list 1 ltrim list 1 2 lpop 從頭部删除連結清單中的元素,傳回删除的元素 pop list rpop 從尾部删除連結清單中的元素,傳回删除的元素 lindex key 位置      傳回指定位置的元素 llen 傳回連結清單中元素的個數

4 、 set (集合)類型-唯一、無序 sadd set1 one two nihao xiaogang smember set1擷取 srem set1 one删除指定元素 spop set1 随機删除集合裡面某個元素,傳回該元素 sdiff set1 set2     差集 sdiffstore set3 set1 set2 sinter set1 set2     交集 sinterstore set4 set1 set2 sunion set1 set2     并集 sunionstore set5 set1 set2  smove set2 set1 xiaoli 移動 scard set5 傳回集合中元素的個數 sismember set1 xiaolongbao 檢測某個元素是否在集合中 srandmember set5 随機傳回集合裡面的某個元素,但是并不是删除。 5 、 sorted sets 類型及操作 zadd zset1 12 xiaobai 5 xaioliu 1 xiaohei zrange zset1 0 -1 zrange zset1 0 -1 withscores zrem zset1 xiaoliu zrank zset1 xiaolong在集合中,傳回指定元素的下标。(按照元素的序号升序) zrevrank zset1 xiaohei 在集合中,傳回指定元素的下标。(按照元素的序号降序) zrevrange zset1 0 -1 withscores 檢視集合裡面的内容 , 按照元素的序号,降序顯示的 zrangebyscore zset1 6 12 withscores傳回集合中,根據序号的範圍傳回元素。 zcount zset1 6 12 zcard zset1 zremrangebyrank  zset1 8 10 删除集合中,指定下标範圍内容的元素 zremrangebyscore  zset1 8 10 删除集合中,指定序号範圍内的元素 Zinterstore---有序集合交集Zinterstore sum_point 2 mid_test fin_test Zunionstore---有序集合并集Zunionstore salary 2 programmer manager WEIGHTS 1 3 五、 redis 的其他指令 keys * keys n* exists email del name select 1---共16個庫 move name 1 将目前資料庫中的 key 轉移到其他資料庫中 expire name 10 給一個鍵設定有效期,機關是秒 persist name 把 key 的有效期設定為永久有效,和 expire 指令對應 randomkey 随機傳回一個鍵 type ha1 傳回鍵的資料類型。 dbsize 傳回目前資料庫鍵的個數 info 檢視 redis 伺服器的一些資訊 flushdb 删除目前選擇資料庫中的所有 key flushall删除所有16個庫的key //--------------------------------------------------------------------------------------------------------- Redis-String,hash,list,set,Zset5種資料類型和其他指令

指令  含義 文法 傳回值
Redis-string指令練習,可用于資料緩存
set  設定鍵值,鍵名存在則覆寫 set key vaule set name xiaoyun
setex    設定延時鍵值   setex key time value; setex color 10 red,10秒後過期
setnx   若鍵值存在設定失敗 setnx key value ;  
mset     一次設計多個鍵值 mset key1 value1 key2 value3
msetnx   設定多個鍵值存在則失敗  msetnx key1 value1 key2 value2
getset  設定新值傳回舊值 getset key newValue getset name xiaop
get 擷取鍵值   get key  get name
getrange 擷取鍵值的内容  getrange key begin end getrange name 0 3
mget  一次性擷取多個值  mget key1 key2 mget name age
incr  鍵名自增1   incr key incr age
incrby      鍵名自增指定值  incrby key num incrby age 100 追加100
decr  鍵名自減 1   decr key
decrby  鍵名自減指定值 decrby key num decrby age 100
append  追加字元串  append key value;
strlen   擷取值長度 strlen  key strlen name
Redis-hash指令練習,可用于臨時儲存使用者資料
hset    設定哈希鍵值 hset  key  value hset ha1 name xiaopen
hsetnx  檢測哈希field若存在則0失敗  hsetnx key field value hmset ha2 name xiaozhao age 30
hget    擷取hash内容 hget key field hmget ha2 name age
hmset   一次設定多個hash的field value  hmset key field1  vaule1 field2 vaule2
hmget  一次性獲得多個field值  hmget key field1 field2
hincrby  field的值加指定的數值 hiccrby key field num hincrby ha2 age 100
hexists   判斷一個field是否存在 hexisit key field; hexists ha2 age存在傳回1
hdel 删除一個field hdel firld;
hkeys  傳回hsah裡面所有field hkeys key hkeys ha2
hvals 傳回所有的value hvals key hvals ha2
hgetall 傳回所有的 field和value      hgetall key
Redis-list指令練習,可用于時光機,消息隊列 lrem删除符合條件的元素(count0所有符合的,n,-n從右往左n個符合的)lrem  key  count value lrem user 2 id5從左往右删除2個是id5的值
lpush 從頭部向連結清單裡面添加資料     lpush  key value lpush list1 one
lrange 取對外連結表裡面的全部内容       lrange key  0   -1 lrange key 0 -1
rpush 從尾部向連結清單裡面添加資料     rpush  key vaule rpush list zero
linsert 在連結清單裡指定的位置添加元素   linsert key  before 誰的前面   添加内容 linsert key before tow xiaogang
lset 修改連結清單裡面的元素内容      lset  key  元素的位置(從0開始)  新的值 lset list 1 dagang
ltrim 保留連結清單中指定範圍的元素    ltrim key  開始位置  結束位置 ltrim list 1 2
lpop 删除并傳回連結清單的頭部元素 lpop  key
rpop 删除并傳回連結清單的尾部元素 rpop  key
lindex 傳回指定位置的元素            lindex key 位置 lindex list 1
llen 傳回連結清單中元素的個數lsize          llen  key
Redis-set指令練習,可用于共同好友 
sadd 向集合裡面添加元素  sadd key value1 value2 sadd set1 one two nihao xiaogang
smembers 擷取集合裡面的元素     smembers key smember set1
srem 删除集合裡面指定元素  srem key  指定的元素 srem set1 one
spop 随機删除和傳回集合某個元素 spop key spop set1
dsiff 差集 sdiff key1 key2 sdiff set1 set2
sdiffstore 求差集并儲存到新的集合 sdiffstore  newKey  key1   key2 sdiffstore set3 set1 set2
sinter 交集 sinter  key1 key2 sinter set1 set2
sinterstore 求交集并儲存到新的集合 sinterstore 新集合 key1 key2 sinterstore set4 set1 set2
sunion 并集 sunion key1 key2 sunion set1 set2
sunionstore 求并集并儲存到新的集合 sunionstore newKey key1 key2 sunionstore set5 set1 set2 
smove 移動到key2 smove  key1  key2  移動的元素 smove set2 set1 xiaoli
scard 傳回集合中元素的個數 scard  key scard set5
sismember 檢測某個元素是否在集合中 sismember key 元素 sismember set1 xiaolongbao
srandmember 随機傳回集合某元素,不删除 srandmember key srandmember set5
Redis-Zset指令練習,可用于排名
Zadd 向有序集合裡面添加元素  zadd key(有序集合名稱)  score1  元素1  score2  元素2…… zadd zset1 12 xiaobai 5 xaioliu 1 xiaohei
zrange  按序号升序顯示集合元素 zrange  key  開始下标  結束下标  [withscores] zrange zset1 0 -1 withscores顯示序号
zrevrange   按序号降序顯示集合元素 zrevarange key 0  -1  withscore zrevrange zset1 0 -1 withscores
zrem  删除集合中指定的元素                     zrem key 指定的元素 zrem zset1 xiaoliu
Zrank  按序号升序傳回指定元素的下标             zrank key  field zrank zset1 xiaolong
zrevrank  按序号降序傳回指定元素的下标   zrevrank key field  zrevrank zset1 xiaohei
zrangebyscore  根據序号的範圍傳回元素        zrangebyscore  key  開始序号  結束序号 zrangebyscore zset1 6 12 withscores
Zcount 傳回指定序号範圍内元素的個數  zcount key  開始序号 結束序号 zcount zset1 6 12
zcard  傳回集合中元素的個數 zcard key zcard zset1
zremrangebyrank 删除指定下标範圍内容的元素        zremrangebyrank  key  開始下标  結束下标 zremrangebyrank  zset1 8 10
Zremrangebyscore        删除指定序号範圍内的元素。 zremrangebyscore key    開始序号 結束序号 zremrangebyscore  zset1 8 10
Redis的其他指令
keys 檢視目前資料庫下面的鍵 keys *或keys n* keys *或keys n*
exists 檢視某個鍵是否在目前資料庫 exists key exists email
del 删除目前庫指定鍵 del key1 key2 key3 del name
select 共16個庫 select  資料庫編号 select 1---共16個庫
move 将目前庫的key轉移到其他庫 move key  資料庫編号 move name 1
expire 給一個鍵設定有效期,機關是秒 expire key 秒數 expire name 10
persist 把key有效期設定為永久 persist key  persist name
randomkey 随機傳回一個鍵 randomkey randomkey
type 傳回鍵的資料類型 type type ha1
dbsize 傳回目前庫鍵的個數 dbsize
info 檢視redis伺服器資訊 info
flushdb 删除目前庫中的所有key flushdb
flushall 删除所有資料庫中的key flushall