NOSQL数据库

来源:互联网 发布:数据库购买 编辑:程序博客网 时间:2024/05/17 05:51

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

0 0