Redis學習基礎二
回顧:上一基礎中已了解 ( 什麽是redis 、redis 的三大特點、安裝,和數據配置)
接下來淺嘗Redis的數據類型,時間煮雨......
一、Redis數據類型
redis支持五中數據類型(string字符串、hash哈希、list列表、set集合、zset有序集合)
(一)String 字符串
1、string 是redis 中最基本的類型,可以理解成與memcached一模一樣的類型,一個key對應一個value
2、string 類型是二進制安全的,意思是redis 的string可以包含任何數據,比如jop圖片或者序列化的對象
3、sting 類型是redis最基本的數據類型,一個鍵最大能存儲512MB
實戰
redis 127.0.0.1:6379> set name ‘myis lcc‘ OK redis 127.0.0.1:6379> get name "myis lcc" redis 127.0.0.1:6379>
這裏用到了redis 的 SET 和 GET命令,鍵為name,對應的值為 myis lcc
(二)Hash 哈希
1、redis hash 是一個鍵值對集合
2、redis hash 是一個string類型的 field 和 value 的映射表, hash 特別適合用於儲存對象
(一個鍵最大儲存512MB)
實戰
redis 127.0.0.1:6379> HMSET user:1 username redis password redis points 200 OK redis 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "redis" 3) "password" 4) "redis" 5) "points" 6) "200" redis 127.0.0.1:6379>
以上實例中 hash 數據類型儲存了包含用戶腳本的信息的用戶對象,實例中用了 Redis HMSET \ HGETALL命令, user:1為鍵名
(每個hash可以儲存2的32次方-1鍵值對(40多億))
(三)List 列表
1、redis 列表是簡單的字符串列表,安裝順序排序。可以添加一個元素導入列表的左邊(頭部) 或者右邊(尾部)
實戰
redis 127.0.0.1:6379> lpush redis.list php (integer) 1 redis 127.0.0.1:6379> lpush redis.list mysql (integer) 2 redis 127.0.0.1:6379> rpush redis.list cc (integer) 3 redis 127.0.0.1:6379> lrange redis.list 0 10 1) "mysql" 2) "php" 3) "cc" redis 127.0.0.1:6379>
(列表最多可以儲存2的32次方-1個元素(4294967295 每個類別可以存40多億))
(四)Set 集合
1、redis 的集合 set 是string 類型的無序集合
2、集合是通過哈希表實現的,所以添加、刪除、查找的復雜度都是O(1)
3、sadd 命令
添加一個sting元素到集合中,成功返回1,如果元素已經存在返回 0, key對應的set 不存在發生錯誤則返回錯誤
sadd key member
實例
redis 127.0.0.1:6379> sadd redis.set mysql (integer) 1 redis 127.0.0.1:6379> sadd redis.set php (integer) 1 redis 127.0.0.1:6379> sadd redis.set cc (integer) 1 redis 127.0.0.1:6379> sadd redis.set mysql (integer) 0 redis 127.0.0.1:6379> smembers redis.set 1) "php" 2) "cc" 3) "mysql" redis 127.0.0.1:6379>
註意:以上實例中 mysql 添加了兩次,但是根據集合內元素的唯一性,第二次插入的元素會被忽略
(集合中最大的成員數位2的32次方-1(4294967295 每個類別可以存40多億))
(五)Zset 有序集合
1、redis zset 和 set 一樣也是string 類型的元素集合,且不允許重復成員
2、不同的是每個元素都會關聯一個double類型的分數。redis 正是通過分數來為集合中的成員進行從小到大的排序
3、zset 的成員是唯一的,但分數(score)卻可以重復
4、zadd 命令
添加元素到集合,元素在集合中存在則更新score
zadd key score member
實戰
redis 127.0.0.1:6379> zadd redis.zset.cn 0 php (integer) 1 redis 127.0.0.1:6379> zadd redis.zset.cn 0 mysql (integer) 1 redis 127.0.0.1:6379> zadd redis.zset.cn 0 redis (integer) 1 redis 127.0.0.1:6379> zadd redis.zset.cn 0 redis (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE redis.zset.cn 0 10 1) "mysql" 2) "php" 3) "redis" redis 127.0.0.1:6379>
以上就是淺嘗Redis 數據類型,接下來進行命令實踐
註明:純手工碼字搬運喲
Redis學習基礎二