NOSQL数据库
2016-08-10 22:29
148 查看
memcache
mysql内存表 ENGINE= MEMORY max_heap_table_size MAX_ROWS mysql临时表 tmp_table_size
memcached服务维护了一张内存表(hahstable)
key value
memcached 的 key一般是 字串, 不能重复
value可以放入(字符串,数值,数组,对象,布尔,二进制数据[图片/视频],null)
安装 memcache.exe -d install 缺少msvcr71.dll 管理员身份安装
启动关闭 memcache.exe -d start memcache.exe -d stop shell命令:memcache.exe -p port
成功启动 netstat -an port 11211 netstat -anb
memcached服务 Telnet工具 PHP程序php_memcache.dll【与PHP版本一致】(memcache扩展,memcached扩展,socket)
telnet 127.0.0.1 11211 CRUD ctrl+]
add key 0(标志,一般默认,代表是否压缩) 存放时间 数据大小(字符)
get key
set/replace key 0 存放时间 数据大小(字符)
delete key
序列化(数据信息+数据类型) json(key-value)
exprie 直接给的是秒数,则最大 30*3600*24。如果你希望保持时间超过30 time()+天数*3600*24 即可
memcache内部机制:libevent 跨平台,并发处理。内置内存存储方式:LRU(least recently used)
memcache分布式: addserver
session入memcache: ini_set session.save_handler session.save_path
memcache session 区别:提速,无状态数据
memcache 安全:Windows防火墙
适用数据:变化频繁,具有不稳定的数据,不需要实时入库(在线状态,在线人数…)
数据缓存系统:
mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。mongodb和memcached不存在谁替换谁的问题。和memcached
更为接近的是redis。
它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。
Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况(如人人网大量查询用户信息、好友信息、文章信息等)。
Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)。
MongoDB:主要解决海量数据的访问效率问题。
Memcached单个key-value大小有限,一个value最大只支持1MB,而Redis最大支持512MB
Mongod
server:mongod –dbpath D:\weixin\mongodb\db
client:mongo 127.0.0.1:27017/admin
图形化客户端:MongoVUE
show dbs //显示数据库列表
use dbname //进入dbname数据库
show collections //显示数据库中的集合
db.users.save({“name”:”lzy”}) //创建了名为users的集合,并新增一条的数据
db.users.insert({“name”:”ghost”, “age”:10})
db.users.find() 查找users集合中所有数据
db.users.findOne() 查找users集合中的第一条数据
db.users.update({“name”:”ghost”}, {“age”:24}) //修改
db.users.remove({“name”: “lzy”}) //删除users集合下name=lecaf的数据
db.users.drop() //删除集合users
db.runCommand({“dropDatabase”: 1}) //删除当前数据库
Redis
启动服务端:redis-server redis.conf
客户端连接:redis-cli
图形化客户端:Redis Client
操作字符串
set key value //如果key不存在则建立,如果key存在则修改其值
get key //取值
mset key1 value1 key2 value2 //一次设置多个值
mget key1 key2 //一次获取多个值
getset key nrevalue //获取并返回旧值,在设置新值
append key value //把value追加到key 的原值上
getrange key start stop //获取字符串中[start, stop]范围的值
setex key time value //设置key对应的值value,并设置有效期为time秒
strlen key //取指定key的value值的长度
操作数字
incr key //自增,返回新值
incrby key 2 //跳2自增,返回新值
操作key
randomkey:返回随机key
type key:返回key存储的类型
exists key:判断某个key是否存在
del key:删除key
rename key newkey:改名
ttl key:查询key的生命周期(秒)
expire key 整数值:设置key的生命周期以秒为单位
pexpire key 整数值:设置key的生命周期以毫秒为单位
pttl key:查询key 的生命周期(毫秒)
perisist key:把指定key设置为永久有效
操作链表
lpush key value:把值插入到链表头部
rpush key value:把值插入到链表尾部
lpop key :返回并删除链表头部元素
rpop key: 返回并删除链表尾部元素
llen key:计算链表的元素个数
操作hash
hset myhash field value:设置myhash的field为value
hget myhash field:获取指定的hash field
操作集合
sadd key value1 value2:往集合里面添加元素
smembers key:获取集合所有的元素
srem key value:删除集合中某个元素
srandmember key:随机取一个元素
sismember key value:判断集合是否有某个值
scard key:返回集合元素的个数
操作有序集合
zadd key score1 value1:添加元素
zrank key member:查询member的排名
zcard key:返回集合元素的个数
服务器相关命令
select:选择数据库
dbsize:返回当前数据库中key的数目
info:获取服务器的信息和统计
monitor:实时转储收到的请求
config get 配置项:获取服务器配置的信息
config set 配置项 值:设置配置项信息
flushdb:删除当前选择数据库中所有的key
flushall:删除所有数据库中的所有的key
time:显示服务器时间,时间戳(秒),微秒数
save:保存rdb快照
lastsave:上次保存时间
memcache
安装:memcached -d install
sc create “memcached_11211” start= demand binPath= “D:\software_package\memcached_win32_1.4.5\memcached.exe -d runservice -m 16 -p 11211 -n 48 -c 2 -f 1.05” DisplayName= “memcached_11211”
否安装成功:memcached –h
启动:memcached -d start
sc start “memcached_11211”
客户端:telnet 127.0.0.1 11211
用telnet连接Memcached,窗口中不显示字符—-按住“Ctrl+]” 回车解决问题。
set key 0 0 4 不存在时进行添加,存在时进行更新
add key 0 0 3 只有数据不存在时进行添加
replace key 0 0 2 只有数据存在时进行替换
delete key 删除已存在的键值
get key 查看添加进去的记录
stats 全局统计
flush_all 清空所有缓存
默认参数说明
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-u 以的身份运行 (仅在以root运行的时候有效
-m 最大内存使用,单位MB。默认64M
-M 内存耗尽时返回错误,而不是删除
-c 最大同时连接数,默认是102
-f 块大小增长因子,默认是1.2
-n 最小分配空间,key+value+flags默认是4
-h 显示帮助
https://github.com/junstor/memadmin
Linux下Mongodb安装
mysql内存表 ENGINE= MEMORY max_heap_table_size MAX_ROWS mysql临时表 tmp_table_size
memcached服务维护了一张内存表(hahstable)
key value
memcached 的 key一般是 字串, 不能重复
value可以放入(字符串,数值,数组,对象,布尔,二进制数据[图片/视频],null)
安装 memcache.exe -d install 缺少msvcr71.dll 管理员身份安装
启动关闭 memcache.exe -d start memcache.exe -d stop shell命令:memcache.exe -p port
成功启动 netstat -an port 11211 netstat -anb
memcached服务 Telnet工具 PHP程序php_memcache.dll【与PHP版本一致】(memcache扩展,memcached扩展,socket)
telnet 127.0.0.1 11211 CRUD ctrl+]
add key 0(标志,一般默认,代表是否压缩) 存放时间 数据大小(字符)
get key
set/replace key 0 存放时间 数据大小(字符)
delete key
序列化(数据信息+数据类型) json(key-value)
exprie 直接给的是秒数,则最大 30*3600*24。如果你希望保持时间超过30 time()+天数*3600*24 即可
memcache内部机制:libevent 跨平台,并发处理。内置内存存储方式:LRU(least recently used)
memcache分布式: addserver
session入memcache: ini_set session.save_handler session.save_path
memcache session 区别:提速,无状态数据
memcache 安全:Windows防火墙
适用数据:变化频繁,具有不稳定的数据,不需要实时入库(在线状态,在线人数…)
数据缓存系统:
mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。mongodb和memcached不存在谁替换谁的问题。和memcached
更为接近的是redis。
它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。
Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况(如人人网大量查询用户信息、好友信息、文章信息等)。
Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)。
MongoDB:主要解决海量数据的访问效率问题。
Memcached单个key-value大小有限,一个value最大只支持1MB,而Redis最大支持512MB
Mongod
server:mongod –dbpath D:\weixin\mongodb\db
client:mongo 127.0.0.1:27017/admin
图形化客户端:MongoVUE
show dbs //显示数据库列表
use dbname //进入dbname数据库
show collections //显示数据库中的集合
db.users.save({“name”:”lzy”}) //创建了名为users的集合,并新增一条的数据
db.users.insert({“name”:”ghost”, “age”:10})
db.users.find() 查找users集合中所有数据
db.users.findOne() 查找users集合中的第一条数据
db.users.update({“name”:”ghost”}, {“age”:24}) //修改
db.users.remove({“name”: “lzy”}) //删除users集合下name=lecaf的数据
db.users.drop() //删除集合users
db.runCommand({“dropDatabase”: 1}) //删除当前数据库
Redis
启动服务端:redis-server redis.conf
客户端连接:redis-cli
图形化客户端:Redis Client
操作字符串
set key value //如果key不存在则建立,如果key存在则修改其值
get key //取值
mset key1 value1 key2 value2 //一次设置多个值
mget key1 key2 //一次获取多个值
getset key nrevalue //获取并返回旧值,在设置新值
append key value //把value追加到key 的原值上
getrange key start stop //获取字符串中[start, stop]范围的值
setex key time value //设置key对应的值value,并设置有效期为time秒
strlen key //取指定key的value值的长度
操作数字
incr key //自增,返回新值
incrby key 2 //跳2自增,返回新值
操作key
randomkey:返回随机key
type key:返回key存储的类型
exists key:判断某个key是否存在
del key:删除key
rename key newkey:改名
ttl key:查询key的生命周期(秒)
expire key 整数值:设置key的生命周期以秒为单位
pexpire key 整数值:设置key的生命周期以毫秒为单位
pttl key:查询key 的生命周期(毫秒)
perisist key:把指定key设置为永久有效
操作链表
lpush key value:把值插入到链表头部
rpush key value:把值插入到链表尾部
lpop key :返回并删除链表头部元素
rpop key: 返回并删除链表尾部元素
llen key:计算链表的元素个数
操作hash
hset myhash field value:设置myhash的field为value
hget myhash field:获取指定的hash field
操作集合
sadd key value1 value2:往集合里面添加元素
smembers key:获取集合所有的元素
srem key value:删除集合中某个元素
srandmember key:随机取一个元素
sismember key value:判断集合是否有某个值
scard key:返回集合元素的个数
操作有序集合
zadd key score1 value1:添加元素
zrank key member:查询member的排名
zcard key:返回集合元素的个数
服务器相关命令
select:选择数据库
dbsize:返回当前数据库中key的数目
info:获取服务器的信息和统计
monitor:实时转储收到的请求
config get 配置项:获取服务器配置的信息
config set 配置项 值:设置配置项信息
flushdb:删除当前选择数据库中所有的key
flushall:删除所有数据库中的所有的key
time:显示服务器时间,时间戳(秒),微秒数
save:保存rdb快照
lastsave:上次保存时间
memcache
安装:memcached -d install
sc create “memcached_11211” start= demand binPath= “D:\software_package\memcached_win32_1.4.5\memcached.exe -d runservice -m 16 -p 11211 -n 48 -c 2 -f 1.05” DisplayName= “memcached_11211”
否安装成功:memcached –h
启动:memcached -d start
sc start “memcached_11211”
客户端:telnet 127.0.0.1 11211
用telnet连接Memcached,窗口中不显示字符—-按住“Ctrl+]” 回车解决问题。
set key 0 0 4 不存在时进行添加,存在时进行更新
add key 0 0 3 只有数据不存在时进行添加
replace key 0 0 2 只有数据存在时进行替换
delete key 删除已存在的键值
get key 查看添加进去的记录
stats 全局统计
flush_all 清空所有缓存
默认参数说明
-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-u 以的身份运行 (仅在以root运行的时候有效
-m 最大内存使用,单位MB。默认64M
-M 内存耗尽时返回错误,而不是删除
-c 最大同时连接数,默认是102
-f 块大小增长因子,默认是1.2
-n 最小分配空间,key+value+flags默认是4
-h 显示帮助
https://github.com/junstor/memadmin
Linux下Mongodb安装
1.下载安装包:wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 解压:tar zxf mongodb-linux-i686-1.8.2.tgz 2. 安装准备:mv mongodb-linux-i686-1.8.2 /usr/local/mongodb 创建数据库文件夹与日志文件 mkdir /usr/local/mongodb/data touch /usr/local/mongodb/logs 3. 设置开机自启动 将mongodb启动项目追加入rc.local保证mongodb在服务器开机时启动 echo "/usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data –logpath=/usr/local/server/mongodb/logs –logappend --auth –port=27017" >> /etc/rc.local 4. 启动mongodb:cd到mongodb目录下的bin文件夹启动mongodb /usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs --logappend --auth --port=27017 –fork 5. 参数解释 --dbpath 数据库路径(数据文件) --logpath 日志文件路径 --master 指定为主机器 --slave 指定为从机器 --source 指定主机器的IP地址 --logappend 日志文件末尾添加 --port 启用端口号 --fork 在后台运行 --only 指定只复制哪一个数据库 --slavedelay 指从复制检测的时间间隔 --auth 是否需要验证权限登录(用户名和密码) --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%) 6. 进入数据库的CLI管理界面:cd到mongodb目录下的bin文件夹,执行命令./mongo [root@namenode mongodb]# ./bin/mongo MongoDB shell version: 1.8.2 > show dbs; > use dbname; > exit;
相关文章推荐
- 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令
- Nosql数据库之mongodb c++使用实例
- NoSQL数据库探讨之一 - 为什么要用非关系数据库?
- 8种主流NoSQL数据库系统特性对比和最佳应用场景
- 数据库优化--NoSQL的分类和说明
- 八种Nosql数据库系统对比
- [转载]NoSQL数据库的基础知识
- NoSQL数据库种类
- MongoDB, Cassandra, 和 HBase -- 三种NoSQL数据库比较(翻译)
- NoSQL数据库性能比较:MongoDB vs Redis vs Tokyo Tyrant
- 深入解析NoSQL数据库的分布式算法
- NoSQL数据库 — MongoDB和Redis
- NoSQL 数据库的类型一览表
- 2.非关系型数据库(Nosql)之mongodb:mongodb显示所有数据库,使用数据库,集合创建(显示和隐式创建),集合查询,初步数据的增删改查,分页
- SQL和NoSQL数据库的差别
- 关系数据库还是NoSQL数据库
- 细数那些运行在微软平台上的NoSQL数据库
- HBase与MongDB等NoSQL数据库对比
- NoSQL数据库介绍(4)