使用命令行操作redis
數據類型
字符串String
列表list 使用雙向循序鏈表實現(LinkedList)
散列 Hash 一般應用於將redis作為分布式緩存,存儲數據庫中的數據對象
集合set
有序集合zset 會自動排名,一般用於商品的排名
命令:
String數據類型的命令:
set:保存數據或修改數據: 例如 set name zhangsan
get 取數據 例如 get name
incr:遞增 每使用一次 例如:incr age(可以用於年齡每年加一)
decr:遞減 沒使用一次 例如:decr age
incrby:增加 例如:incrby age 10 (如果age的值剛開始為20,執行命令后,值為30)
hash數據類型的命令:
hset:存hash 例如: hset user1 name zhangsan 存user1的名字為zhangsan
hget 取hash 例如: hget user1 name取user1的名字
如果用戶的屬性字段太多的話這樣存取很麻煩
hmset:存對象:hmset user1 name zhangsan password admin age 10 用戶名為張三 密碼為admin 年齡10
hmget:取對象 hmget user1 name age password
hgetall:取對象的所有屬性的值 hgetall user2 取用戶的所有信息
hdel:刪除字段 hdel user2 name
list數據類型的命令
lpush:左存 例如:lpush key1 1 2 3 ;向key1集合中放入1,2,3三個數;
lrange:取值 例如 lrange key1 0 -1;取出key1 中所有的數據,命令格式:lrange 集合名稱 開始索引 結束索引(結束索引為-1時取出所有的數據)
rpush:右存,例如:rpush key1 7 8 9 向key1中保存7,8,9
再取一次 lrange key1 注意一下格式
lpop:從左邊彈出數據(刪除最左邊) 例如 lpop key1 彈出key1 集合的最上邊的值
rpop:從右邊彈出數據(刪除最右邊) 例如 rpop key1 彈出key1 集合最底部的值
左右各彈出一次,使用lrange key1 0 -1查詢所有數據,顯示如下:
set數據類型的命令(無序,不允許重復)
sadd :保存數據 例如sadd key1 1 2 3 4 5 向集合key1 中添加 1,2,3,4,5
smembers:查詢數據 例如 smembers key1 查詢key1 中的所有句酷
sismember:判斷集合中是否存在某個元素 例如 sismember key1 10 判斷集合key1中是否存在10 如果存在就返回1,不存在返回0;
sdiff:集合運算差集,例如sdiff key1 key2 求key1和kye2的差集 key1-key2
sinter:交集 例如 sinter key1 key2 求key1和key2的交集
sunion:並集 例如sunion key1 key2 求key1和key2的並集
zset數據類型的命令(有序集合,redis會自動排序)
zadd:添加 例如 zadd zkey1 10 zhangsan 10 lisi 15 wangwu
zrange :查詢(已經自動排序)
例如:zrange zkey1 0 -1 withscores(如果命令不帶withscores則不會顯示分數)
zrem:刪除;例如zrem zkey1 wangwu 刪除王五
zscore:查詢單個分數 zsore zkey1 lisi 查詢zkey1集合中lisi的分數
zrevrange:降序排序 例如: zrevrange zkey1 0 -1 withscores(命令中帶有withscores則會顯示分數)
通用命令:
keys:返回滿足給定pattern的所有key 例如keys *ad 查詢所有以ad結尾的key
ping:檢查服務器是否還活着,發一個ping,服務器會響應一個PONG