redis常規數據操作

介紹

redis是一個key-value存儲系統,和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。與memcached一樣,爲了保證效率,數據都是緩存在內存中。區別的是redis會週期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步

操作key

Redis是key-value的數據庫,Redis的鍵用於管理Redis的鍵,基本語法是
COMMAND KEY_NAME
192.168.23.100:6379> set test zhaiky
OK
192.168.23.100:6379> get test
"zhaiky"
192.168.23.100:6379> del test
(integer) 1
192.168.23.100:6379> get test
(nil)
192.168.23.100:6379> 

Redis keys命令及描述
1)del key 該命令用於在key存在是刪除 key
2)dump key 序列化給定key,並返回被序列化的值
3)exists key 檢查給定key是否存在
4)expire key seconds 爲給定key設置過期時間
5)expire key timestamp EXPIREAT的作用和EXPIRE類似,都用於爲key設置過期時間。不同在於EXPIREAT命令接受的時間參數是UNIX時間戳(unix timestamp)
6)expire key milliseconds 設置key的過期時間億以毫秒計。
7)expire key milliseconds-timestamp 設置key過期時間的時間戳(unix timestamp)以毫秒計
8)keys pattern 查找所有符合給定模式( pattern)的key,例如keys * 返回所有的key
9)move key db 將當前數據庫的key移動到給定的數據庫db當中
10)persist key 移除key的過期時間,key將持久保持
11)pttl key 以毫秒爲單位返回key的剩餘的過期時間
12)ttl key 以秒爲單位,返回給定key的剩餘生存時間(TTL, time to live)
13)randomkey 從當前數據庫中隨機返回一個key
14)rename key newkey 修改key的名稱
15)renamenx key newkey 僅當 newkey 不存在時,將 key 改名爲 newkey 
16)type key 返回key所儲存的值的類型

Redis數據類型

Redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
1)String(字符串)
String是Redis最基本的數據類型,一個key對應一個value
192.168.23.100:6379> set test zhaiky
OK
192.168.23.100:6379> get test
"zhaiky"
192.168.23.100:6379> 

2)Hash(哈希)
hash是一個鍵值對集合,是一個string類型的field和value的映射表,hash特別適合用於存儲對象
192.168.23.100:6379> hset hash1 name zhaiky
(integer) 1
192.168.23.100:6379> hset hash1 score 100
(integer) 1
192.168.23.100:6379> hget hash1 name
"zhaiky"
192.168.23.100:6379> hget hash1 score
"100"
192.168.23.100:6379>
hset&hget一次只能往哈希結構裏面插入一個鍵值對,如果插入多個可以用hmset&hmget
192.168.23.100:6379> hmset hash2 name zhaiky sex nan
OK
192.168.23.100:6379> hgetall hash2
1) "name"
2) "zhaiky"
3) "sex"
4) "nan"
192.168.23.100:6379> hmget hash2 name sex
1) "zhaiky"
2) "nan"
192.168.23.100:6379>

3)LIST(列表)
192.168.23.100:6379> lpush list1 1
(integer) 1
192.168.23.100:6379> lpush list1 2
(integer) 2
192.168.23.100:6379> lpush list1 3
(integer) 3
192.168.23.100:6379> lrange list1 0 1
1) "3"
2) "2"
192.168.23.100:6379> lrange list1 0 10
1) "3"
2) "2"
3) "1"
192.168.23.100:6379>

4)Set(集合)
Redis的Set是string類型的無序集合,集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)
192.168.23.100:6379> sadd set1 redis
(integer) 1
192.168.23.100:6379> sadd set1 redis
(integer) 0
192.168.23.100:6379> sadd set1 mysql
(integer) 1
192.168.23.100:6379> smembers set1
1) "mysql"
2) "redis"
192.168.23.100:6379> 
說明
set往集合中插入元素,smembers列舉出集合中的元素
成功插入返回1;錯誤插入返回0,例子中mongodb第二次插入時,因已經存在,故插入失敗。

5)zset(sorted sete:有序集合)
zset和set一樣也是String類型的集合,且不允許元素重複,zset和set不同的地方在於zset關聯一個double類型的分數,redis通過分數對集合中的元素排序,zset的元素是唯一的,但是分數是可以重複的
192.168.23.100:6379> zadd zset1 1 redis
(integer) 1
192.168.23.100:6379> zadd zset1 2 redis
(integer) 0
192.168.23.100:6379> zadd zset1 3 mysql
(integer) 1
192.168.23.100:6379> zadd zset1 2 oracle
(integer) 1
192.168.23.100:6379> zrangebyscore zset1 0 100
1) "oracle"
2) "redis"
3) "mysql"
192.168.23.100:6379>

數據備份與恢復

數據備份
192.168.23.100:6379> config get dir #備份目錄
1) "dir"
2) "/data/redis/redis/bin"
192.168.23.100:6379> save  
OK
數據恢復
只需將備份文件dump.rdb拷貝到redis的安裝目錄即可

數據庫操作

Redis中,一共有16個數據庫,分別是0~15,一般情況下,進入數據庫默認編號是0,如果我們要進入指定數據庫,可以用select語句
192.168.23.100:6379> select 0
OK
192.168.23.100:6379> keys *
1) "test"
2) "hash2"
3) "hash1"
4) "zset1"
5) "test1"
6) "list1"
7) "set1"
8) "test2"
192.168.23.100:6379> select 1
OK
192.168.23.100:6379[1]> keys *
(empty list or set)
192.168.23.100:6379[1]> 
192.168.23.100:6379> dbsize #當前數據庫中所有key的數目
(integer) 8
192.168.23.100:6379> flushdb #刪除當前數據庫中的所有key
OK
192.168.23.100:6379> flushall #清空所有數據庫中的所有key
OK
192.168.23.100:6379> 
192.168.23.100:6379> info #查看性能數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章