☆☆☆☆☆☆ Redis 客戶端操做 ☆☆☆☆☆☆☆html
一、Linux 開機後啓動Redis的服務端git
[root@JSH-01]# cd /usr/local/redis/src/github
[root@JSH-01 src]# redis-server ../redis.conf redis
二、進入 Redis 客戶端 數據庫
[root@JSH-01]# cd /usr/local/redis/src/memcached
[root@JSH-01 src]# redis-cliui
127.0.0.1:6379> keys *
1) "size"
2) "name"
3) "uuu"
4) "name1"
5) "Name"
6) "age"
7) "adress"
8) "abc"
9) "list1"
10) "time"
127.0.0.1:6379> get uuu
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> get size
"(tuple)"spa
三、Redis 默認有 16 個庫,庫名分別是0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15server
127.0.0.1:6379> select 1 #切換爲database 1
OK
127.0.0.1:6379[1]> select 0 #切換爲database 0
OK
127.0.0.1:6379> set qw1 asdfgh #設定 key名爲 qw1 的值爲 asdfgh
OK
127.0.0.1:6379> get qw1 #獲取 key名爲 qw1 的值
"asdfgh"
127.0.0.1:6379> select 5 #切換爲database 5
OK
127.0.0.1:6379[5]> get qw1 #獲取 key名爲 qw1 的值
(nil) #由於 key名爲 qw1 對應的數據不存在該database庫,故而返回nilhtm
127.0.0.1:6379[5]> select 0
OK
127.0.0.1:6379> keys *
1) "size"
2) "name"
3) "uuu"
4) "name1"
5) "Name"
6) "age"
7) "adress"
8) "abc"
9) "qw1"
10) "list1"
11) "time"
127.0.0.1:6379> del size # 刪除庫0中 keyname爲 size 的數據
(integer) 1
127.0.0.1:6379> del name
(integer) 1
……
127.0.0.1:6379> keys *
(empty list or set) #代表庫中的 key-value 都被刪除了
127.0.0.1:6379> lpush aaa 1 2 3 4 #從左插入多個字符到列表中
(integer) 4
127.0.0.1:6379> set abc home #設定 key名爲 abc 對應的value 爲 home
OK
127.0.0.1:6379> type aaa #查看 key名爲 aaa 對應的 value 的數據類型
list
127.0.0.1:6379> type abc #查看 key名爲 abc 對應的 value 的數據類型
string
127.0.0.1:6379> sadd myset a b c #設定set類型 的名爲mset 值爲a b c
(integer) 3
127.0.0.1:6379> type myset
set
127.0.0.1:6379> zadd myzset 5 6 7 8 9 10 #設定zset類型 的名爲myzset 值爲5 6 7 8 9 10
(integer) 3
127.0.0.1:6379> type myzset
zset
127.0.0.1:6379> hset myhash key1 value1 #設定hash類型 的名爲key1 值爲value1
(integer) 1
127.0.0.1:6379> type myhash
hash
☆☆☆☆☆☆ Redis 總結 ☆☆☆☆☆☆☆
1、Redis 的字符串string操做
set 命令用於設置給定 key 的值。若是 key 已經存儲其餘值, SET 就覆寫舊值,且無視類型。
mset 命令用於同時設置一個或多個 key-value 對。
Get 命令用於獲取指定 key 的值。若是 key 不存在,返回 None 。若是key 儲存的值不是字符串類型,返回一個錯誤。
Mget 命令返回全部(一個或多個)給定 key 的值。 若是給定的 key 裏面,有某個 key 不存在,那麼這個 key 返回 None
即:set(keyname,value) get(keyname)
mset(keyname1-value1,keyname2=value2) ——括號()中的內容爲 dic 類型
mget(keyname1,keyname2,keyname3,keyname4) ——括號()中的內容爲 tuple 類型
拓展參考 http://www.cnblogs.com/xuchunlin/p/7062065.html
2、Redis 的列表 list 操做
Redis中存儲list類型的數據是在內存中,一個name對應一個list
一、將一個或多個值插入到列表頭部,即左邊添加 lpush(name,value)
執行lpush命令後,列表的長度會發生變化。若是 key 不存在,一個空列表會被建立並執行 LPUSH 操做。
二、將一個或多個值插入到列表尾部,即右邊添加 rpush(name,value)
執行rpush命令後,列表的長度會發生變化。若是 key 不存在,一個空列表會被建立並執行 RPUSH 操做。
三、插入linster(name,where,refvalue,value)
四、左邊刪除 lpop(keyname)
五、經過切片取list的值 lrange(name,start,end)
六、修改list中的某個值 lset(name, index, value)
七、刪除指定的值 lrem(name, value, num) num默認爲0, 刪除全部,num=2 從左往右刪除2個元素,num=-1從右往左刪除兩個元素
參考連接 http://www.cnblogs.com/xuchunlin/p/7067154.html
3、Redis 的 集合set 操做
一、增長 sadd(name, values)
二、獲取 scard(name)
三、刪除 spop(name) s.srem(name, value)
四、並集 sunion(keys) 例如:suniion("a", "b", "c")
五、交集 sinter(key)
4、Redis 的 HASH 操做
一、獲取key的詳細內容 hgetall(name)
二、設置單個元素 hset(name, key, value)
三、設置多個元素 hmset(name, {"key": "value"})
四、獲取單個元素 hget(name, key)
五、獲取多個元素 hmget(name, keys)
六、獲取多有的key hkeys(name)
七、獲取多有的value hvals(name)
八、判斷key是否存在 hexists(name, key)
九、刪除key hdel(name, keys)
十、獲取長度 hlen(name)
5、Redis 的其餘經常使用操做(適用於全部數據類型)
一、r.keys() 查看全部的key
二、r.delete(names) 刪除keys
三、r.exists(name) 判斷是否存在
四、r.rename(src, dst) 新替舊
五、r.expire(name, time) 設置超時時間
六、r.type(name) 查看name屬於哪一種redis數據類型
七、r.move(name, db) 把name從原理的db移動到db庫下面
八、r.flushall() 刪除全部key
6、NOSQL 之—— memcached 數據庫
一、在 Linux 上安裝 memcached
[root@JSH-01]# cd /usr/local/src/
[root@JSH-01 src]# wget http://memcached.org/latest
[root@JSH-01 src]# tar -zxvf latest
[root@JSH-01 src]# cd memcached-1.5.7/
[root@JSH-01 memcached-1.5.7]# ./configure
報錯 checking for libevent directory... configure: error: libevent is required.
[root@JSH-01 memcached-1.5.7]# cd ..
[root@JSH-01 src]# wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz