Redis
1、 string類型數據的命令操作:
(1) 設置鍵值:
127.0.0.1:6379> set key1 1
(2) 讀取鍵值:
127.0.0.1:6379> get key1
"1"
(3) 數值類型自增1:
127.0.0.1:6379> incr key1
(integer) 2
(4) 數值類型自減1:
127.0.0.1:6379> decr key1
(integer) 1
(5) 查看值的長度:
127.0.0.1:6379> strlen key1
(integer) 1
2、 list類型數據的命令操作:
(1)對列表city插入元素:Shanghai Suzhou Hangzhou
127.0.0.1:6379> lpush city Shanghai Suzhou Hangzhou
(integer) 3
127.0.0.1:6379> lrange city 0 -1
1) "Hangzhou"
2) "Suzhou"
3) "Shanghai"
(2)將列表city里的頭部的元素移除
127.0.0.1:6379> lpop city
"Hangzhou"
127.0.0.1:6379> lrange city 0 -1
1) "Suzhou"
2) "Shanghai"
(3)將name列表的尾部元素移除到number列表的頭部
#操作前
127.0.0.1:6379> lrange name 0 -1
1) "lisi"
2) "zhangsan"
127.0.0.1:6379> lrange number 0 -1
1) "zhangwuji"
2) "wangwu"
#將name最后一個數據移到number中
127.0.0.1:6379> rpoplpush name number
"zhangsan"
#操作后
127.0.0.1:6379> lrange number 0 -1
1) "zhangsan"
2) "zhangwuji"
3) "wangwu"
127.0.0.1:6379> lrange name 0 -1
1) "lisi"
(4) 對一個已存在的列表插入新元素
127.0.0.1:6379> rpushx name zhangfei
(integer) 2
127.0.0.1:6379> lrange name 0 -1
1) "lisi"
2) "zhangfei"
(5)查看list的值長度
127.0.0.1:6379> llen list
(integer) 0
127.0.0.1:6379> llen name
(integer) 2
3、 hash類型數據的命令操作:
(1) 設置一個hash表,order表里包括的鍵值信息有:id:1,customer_name:張三
127.0.0.1:6379> hset order id 1 customer_name '張三'
(integer) 2
[root@localhost ~]# redis-cli --raw
127.0.0.1:6379> hgetall order
id
1
customer_name
張三
(2) 創(chuàng)建一個hash表,表里的鍵值批量插入
127.0.0.1:6379> hmset key2 id 1 name zhangsan age 24
OK
127.0.0.1:6379> hgetall key2
id
1
name
zhangsan
age
24
(3) 獲取order對應的map的所有key
127.0.0.1:6379> hkeys order
id
customer_name
(4) 獲取order對應的map的鍵值數量
127.0.0.1:6379> hlen order
2
(5) 獲取order表里的id值
127.0.0.1:6379> hmget order id
1
4、Keys相關的命令操作
(1) 查看key是否存在
#存在返回1,不存在返回0
127.0.0.1:6379> exists key1
1
(2) 查找滿足pattern的keys
127.0.0.1:6379> keys key*
key1
key2
(3) 查看key的超時時間
127.0.0.1:6379> expire key1 20
1
127.0.0.1:6379> ttl key1
-2
#如果鍵存在且具有超時時間,則返回剩余時間。
#如果鍵不存在或者沒有設置超時時間(永久有效),則返回 -1。
#如果鍵存在但已過期(超時時間為 0),則返回 -2。
(4) 遍歷key
127.0.0.1:6379> keys *
order
key2
MongoDB
1. 創(chuàng)建一個數據庫 名字grade
> use grade
switched to db grade
2. 數據庫中創(chuàng)建一個集合名字 class
3. 集合中插入若干數據 文檔格式如下
{name:‘zhang’,age;10,sex:‘m’,hobby:[‘a’,‘b’,‘c’]}
hobby: draw sing dance basketball football pingpong
computer
db.class.insertMany([
{ name: "小紅", age: 10, sex: 'f', hobby: ['draw', 'sing', 'basketball'] },
{ name: "小明", age: 10, sex: 'm', hobby: ['dance', 'basketball', 'football'] },
{ name: "小王", age:11 , sex: 'm', hobby: ['draw', 'sing', 'dance'] },
{ name: "小李", age: 7, sex: 'm', hobby: ['computer', 'sing', 'pingpong'] },
{ name: "小趙", age: 4, sex: 'f', hobby: ['draw', 'football', 'dance'] },
{ name: "小鬼", age: 6, sex: 'm', hobby: ['sing', 'computer'] },
{ name: "小豬", age: 8, sex: 'm', hobby: ['pingpong'] },
{ name: "小楊", age: 9, sex: 'f', hobby: ['draw', 'pingpong', 'football'] },
{ name: "小天", age: 7, sex: 'm', hobby: ['computer','dance'] },
{ name: "小楚", age: 9, sex: 'f', hobby: ['sing', 'pingpong'] },
{ name: "小吳", age: 12, sex: 'm', hobby: ['sing', 'computer'] },
{ name: "小豪", age: 11, sex: 'm', hobby: ['football'] }
])
4. 查找練習
查看班級所有人信息
> db.class.find({},{_id:0})
{ "name" : "小紅", "age" : 10, "sex" : "f", "hobby" : [ "draw", "sing", "basketball" ] }
{ "name" : "小明", "age" : 10, "sex" : "m", "hobby" : [ "dance", "basketball", "football" ] }
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小李", "age" : 7, "sex" : "m", "hobby" : [ "computer", "sing", "pingpong" ] }
{ "name" : "小趙", "age" : 4, "sex" : "f", "hobby" : [ "draw", "football", "dance" ] }
{ "name" : "小鬼", "age" : 6, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小豬", "age" : 8, "sex" : "m", "hobby" : [ "pingpong" ] }
{ "name" : "小楊", "age" : 9, "sex" : "f", "hobby" : [ "draw", "pingpong", "football" ] }
{ "name" : "小天", "age" : 7, "sex" : "m", "hobby" : [ "computer", "dance" ] }
{ "name" : "小楚", "age" : 9, "sex" : "f", "hobby" : [ "sing", "pingpong" ] }
{ "name" : "小吳", "age" : 12, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小豪", "age" : 11, "sex" : "m", "hobby" : [ "football" ] }
查看班級中年齡為8歲的學生信息
> db.class.find({age:8},{_id:0})
{ "name" : "小豬", "age" : 8, "sex" : "m", "hobby" : [ "pingpong" ] }
查看年齡大于10歲的學生信息
> db.class.find({age:{$gt:10}},{_id:0})
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小吳", "age" : 12, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小豪", "age" : 11, "sex" : "m", "hobby" : [ "football" ] }
查看年齡在 4—8歲之間的學生信息
> db.class.find({age:{$gte:4,$lte:8}},{_id:0})
{ "name" : "小李", "age" : 7, "sex" : "m", "hobby" : [ "computer", "sing", "pingpong" ] }
{ "name" : "小趙", "age" : 4, "sex" : "f", "hobby" : [ "draw", "football", "dance" ] }
{ "name" : "小鬼", "age" : 6, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小豬", "age" : 8, "sex" : "m", "hobby" : [ "pingpong" ] }
{ "name" : "小天", "age" : 7, "sex" : "m", "hobby" : [ "computer", "dance" ] }
找到年齡為6歲且為男生的學生
> db.class.find({age:6,sex:'m'},{_id:0})
{ "name" : "小鬼", "age" : 6, "sex" : "m", "hobby" : [ "sing", "computer" ] }
找到年齡小于7歲或者大于10歲的學生
> db.class.find({$or:[{age:{$lt:7}},{age:{$gt:10}}]},{_id:0})
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小趙", "age" : 4, "sex" : "f", "hobby" : [ "draw", "football", "dance" ] }
{ "name" : "小鬼", "age" : 6, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小吳", "age" : 12, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小豪", "age" : 11, "sex" : "m", "hobby" : [ "football" ] }
找到年齡是8歲或者11歲的學生
> db.class.find({$or:[{age:8},{age:11}]},{_id:0})
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小豬", "age" : 8, "sex" : "m", "hobby" : [ "pingpong" ] }
{ "name" : "小豪", "age" : 11, "sex" : "m", "hobby" : [ "football" ] }
找到興趣愛好有兩項的學生
> db.class.find({ $where: "this.hobby.length == 2" }, { _id: 0 })
{ "name" : "小鬼", "age" : 6, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小天", "age" : 7, "sex" : "m", "hobby" : [ "computer", "dance" ] }
{ "name" : "小楚", "age" : 9, "sex" : "f", "hobby" : [ "sing", "pingpong" ] }
{ "name" : "小吳", "age" : 12, "sex" : "m", "hobby" : [ "sing", "computer" ] }
找到興趣愛好有draw的學生
> db.class.find({ hobby:'draw' }, { _id: 0 })
{ "name" : "小紅", "age" : 10, "sex" : "f", "hobby" : [ "draw", "sing", "basketball" ] }
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小趙", "age" : 4, "sex" : "f", "hobby" : [ "draw", "football", "dance" ] }
{ "name" : "小楊", "age" : 9, "sex" : "f", "hobby" : [ "draw", "pingpong", "football" ] }
找到既喜歡畫畫又喜歡跳舞的學生
> db.class.find({hobby:{$all:['draw','dance']}}, { _id: 0 })
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小趙", "age" : 4, "sex" : "f", "hobby" : [ "draw", "football", "dance" ] }
統計愛好有三項的學生人數
> db.class.find({ $where: "this.hobby.length == 3" }, { _id: 0 })
{ "name" : "小紅", "age" : 10, "sex" : "f", "hobby" : [ "draw", "sing", "basketball" ] }
{ "name" : "小明", "age" : 10, "sex" : "m", "hobby" : [ "dance", "basketball", "football" ] }
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小李", "age" : 7, "sex" : "m", "hobby" : [ "computer", "sing", "pingpong" ] }
{ "name" : "小趙", "age" : 4, "sex" : "f", "hobby" : [ "draw", "football", "dance" ] }
{ "name" : "小楊", "age" : 9, "sex" : "f", "hobby" : [ "draw", "pingpong", "football" ] }
找出本班年齡第二大的學生
> db.class.find({},{_id:0}).sort({age:-1}).skip(1).limit(1)
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
查看學生的興趣范圍
> db.class.distinct('hobby')
[
"basketball",
"computer",
"dance",
"draw",
"football",
"pingpong",
"sing"
]
將學生按年齡排序找到年齡最大的三個
> db.class.find({},{_id:0}).sort({age:-1}).limit(3)
{ "name" : "小吳", "age" : 12, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "name" : "小豪", "age" : 11, "sex" : "m", "hobby" : [ "football" ] }
刪除所有 年紀大于11或者小于5歲的學生
> db.class.deleteMany({$or:[{age:{$gt:11}},{age:{$lt:5}}]})
{ "acknowledged" : true, "deletedCount" : 2 }
> db.class.find()
{ "_id" : ObjectId("64b27b17424df594907ba6b1"), "name" : "小紅", "age" : 10, "sex" : "f", "hobby" : [ "draw", "sing", "basketball" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6b2"), "name" : "小明", "age" : 10, "sex" : "m", "hobby" : [ "dance", "basketball", "football" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6b3"), "name" : "小王", "age" : 11, "sex" : "m", "hobby" : [ "draw", "sing", "dance" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6b4"), "name" : "小李", "age" : 7, "sex" : "m", "hobby" : [ "computer", "sing", "pingpong" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6b6"), "name" : "小鬼", "age" : 6, "sex" : "m", "hobby" : [ "sing", "computer" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6b7"), "name" : "小豬", "age" : 8, "sex" : "m", "hobby" : [ "pingpong" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6b8"), "name" : "小楊", "age" : 9, "sex" : "f", "hobby" : [ "draw", "pingpong", "football" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6b9"), "name" : "小天", "age" : 7, "sex" : "m", "hobby" : [ "computer", "dance" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6ba"), "name" : "小楚", "age" : 9, "sex" : "f", "hobby" : [ "sing", "pingpong" ] }
{ "_id" : ObjectId("64b27b17424df594907ba6bc"), "name" : "小豪", "age" : 11, "sex" : "m", "hobby" : [ "football" ] }
增加、更新、刪除作業(yè) :
使用之前的grade數據庫文章來源:http://www.zghlxwxcb.cn/news/detail-571969.html
- 將小紅的年齡變?yōu)?歲 興趣愛好變?yōu)?跳舞 畫畫
> db.class.update({'name':'小紅'},{$set:{'age':8,'hobby':['dance','draw']}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
- 追加小明興趣愛好 唱歌
> db.class.update({'name':'小明'},{$push:{'hobby':'sing'}})
- 小王興趣愛好增加 吹牛 打籃球
> db.class.update({'name':'小王'},{$push:{'hobby':{$each:['basketball','吹牛']}}})
#或者,但$pushall在 MongoDB 4.2 版本后已被廢棄
> db.class.update({'name':'小王'},{$pushAll:{'hobby':['basketball','吹牛']}})
- 小李增加愛好,跑步和唱歌,但是不要和以前的重復
> db.class.update({'name':'小李'},{$addToSet:{hobby:{$each:['running','sing']}}})
- 該班所有同學年齡加1
> db.class.update({},{$inc:{age:1}},false,true)
- 刪除小明的sex屬性
> db.class.update({'name':'小明'},{$unset:{sex:0}})
- 刪除小李興趣中的第一項
> db.class.update({'name':'小李'},{$pop:{hobby:-1}})
- 將小紅興趣中的畫畫愛好刪除
> db.class.update({'name':'小紅'},{$pull:{hobby:'draw'}})
使用之前的grade數據庫
增加分數域 score:{‘chinese’:88,‘english’:78,‘math’:98}文章來源地址http://www.zghlxwxcb.cn/news/detail-571969.html
db.class.update({ name: "小紅" }, { $set: { score: { chinese: 88, english: 78, math: 98 } } })
db.class.update({ name: "小明" }, { $set: { score: { chinese: 92, english: 85, math: 96 } } })
db.class.update({ name: "小王" }, { $set: { score: { chinese: 80, english: 90, math: 95 } } })
db.class.update({ name: "小李" }, { $set: { score: { chinese: 75, english: 80, math: 82 } } })
db.class.update({ name: "小趙" }, { $set: { score: { chinese: 85, english: 70, math: 89 } } })
db.class.update({ name: "小鬼" }, { $set: { score: { chinese: 78, english: 82, math: 85 } } })
db.class.update({ name: "小豬" }, { $set: { score: { chinese: 92, english: 85, math: 76 } } })
db.class.update({ name: "小楊" }, { $set: { score: { chinese: 89, english: 92, math: 78 } } })
db.class.update({ name: "小天" }, { $set: { score: { chinese: 86, english: 80, math: 90 } } })
db.class.update({ name: "小楚" }, { $set: { score: { chinese: 93, english: 88, math: 94 } } })
db.class.update({ name: "小吳" }, { $set: { score: { chinese: 95, english: 90, math: 85 } } })
db.class.update({ name: "小豪" }, { $set: { score: { chinese: 80, english: 85, math: 90 } } })
- 按照性別分組統計每組人數
> db.class.aggregate([ { $group: { _id: "$sex", count: { $sum: 1 } } } ])
{ "_id" : "f", "count" : 3 }
{ "_id" : null, "count" : 1 }
{ "_id" : "m", "count" : 6 }
- 按照姓名分組,過濾出有重名的同學
#可以去更改一個重名的測試
> db.class.aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])
- 統計每名男生的語文成績
> db.class.aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])
{ "name" : "小王", "score" : { "chinese" : 80 } }
{ "name" : "小李", "score" : { "chinese" : 75 } }
{ "name" : "小鬼", "score" : { "chinese" : 78 } }
{ "name" : "小豬", "score" : { "chinese" : 92 } }
{ "name" : "小天", "score" : { "chinese" : 86 } }
{ "name" : "小豪", "score" : { "chinese" : 80 } }
- 將女生按照英語分數降序排列
> db.class.aggregate([{$match:{sex:'f'}},{$sort:{'score.english':-1}}])
{"name" : "小楊", "age" : 10, "sex" : "f", "hobby" : [ "draw", "pingpong", "football" ], "score" : { "chinese" : 89, "english" : 92, "math" : 78 } }
{"name" : "小楚", "age" : 10, "sex" : "f", "hobby" : [ "sing", "pingpong" ], "score" : { "chinese" : 93, "english" : 88, "math" : 94 } }
{"name" : "小紅", "age" : 9, "sex" : "f", "hobby" : [ "dance" ], "score" : { "chinese" : 88, "english" : 78, "math" : 98 } }
到了這里,關于MySQL-Redis數據類型操作和MongoDB基本操作的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!