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 |