memcached,memcacheq队列的相关 秒速五厘米 2022-01-14 06:45 204阅读 0赞 ------------------------------------------------------------ ------------------------------------------------------------ 1,安装libeventhttps://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz 2,安装BerkeleyDBwget http://download.oracle.com/otn/berkeley-db/db-6.0.20.tar.gz 或者http://download.huihoo.com/berkeleydb/bdb/ http://wiki.huihoo.com/index.php?title=Berkeley_DB#Linux.E7.8E.AF.E5.A2.83.E4.B8.8B.E5.AE.89.E8.A3.85 tar zxvf db-5.2.36.tar.gz cd build_unix ../dist/configure --prefie=/usr/local/db6.0.20makesudo make install ---------------------------------------------------------------------- ----------------------------------------------------------------------- 3,安装Memcacheqhttps://code.google.com/p/memcacheq/downloads/list 注意指定:--with-bdb=/usr/local/db6.0.20 ./configure --prefix=/usr/local/memcacheq --enable-threads --with-bdb=/usr/local/db6.0.20 make sudo make install error while loading shared libraries: libdb-6.0.so: cannot open shared object file: No such file or directory sudo ln -s /usr/local/db6.0.20/lib/libdb-6.0.so /usr/lib/libdb-6.0.so 一,memcacheq的使用: ①,当使用set命令时,就向指定的消息队列中写入了一条新消息,也就是向BerkeleyDB中新insert了一条数据; ②,当使用get命令时,就从 指定队列中取出一条新消息,也就是向BerkeleyDB中delete了一条数据,这个时候再去get的话就返回空了,队列里没消息; ③,可以通过:stats,stats queue来查看。 hadoop@hadoopslave1:~/bigdata/hbase/bin$ telnet 172.16.201.170 11212 Trying 172.16.201.170... Connected to 172.16.201.170. Escape character is '^]'. stats STAT pid 31183 STAT uptime 605 STAT time 1372580856 STAT version 0.2.0 STAT pointer_size 64 STAT rusage_user 0.076004 STAT rusage_system 0.892055 STAT curr_connections 6 STAT total_connections 9 STAT connection_structures 7 STAT get_cmds 4 STAT get_hits 1 STAT set_cmds 1 STAT set_hits 1 STAT bytes_read 415 STAT bytes_written 2870 STAT threads 4 END stats queue STAT q4 1/1 END set q 0 0 5 hhhhh STORED set qq 0 0 5 qqqqq STORED stats STAT pid 31183 STAT uptime 661 STAT time 1372580912 STAT version 0.2.0 STAT pointer_size 64 STAT rusage_user 0.080005 STAT rusage_system 0.908056 STAT curr_connections 6 STAT total_connections 9 STAT connection_structures 7 STAT get_cmds 4 STAT get_hits 1 STAT set_cmds 3 STAT set_hits 3 STAT bytes_read 478 STAT bytes_written 3273 STAT threads 4 END stats queue STAT q 1/0 STAT qq 1/0 STAT q4 1/1 END get qq VALUE qq 0 5 qqqqq END stats queue STAT q 1/0 STAT qq 1/1 STAT q4 1/1 END stats queue STAT q 1/0 STAT qq 1/1 STAT q4 1/1 END get q VALUE q 0 5 hhhhh END stats queue STAT q 1/1 STAT qq 1/1 STAT q4 1/1 END get q END get qq END 二,Ubuntu下安装Memcached 1,安装libevent wget http://www.monkey.org/~provos/libevent-2.0.13-stable.tar.gz tar xzvf libevent-2.0.13-stable.tar.gz ./configure make sudo make install 2,安装memcached wget http://memcached.googlecode.com/files/memcached-1.4.7.tar.gz tar xvzf memcached-1.4.7.tar.gz cd memcached-1.4.7 ./configure --prefix=/usr/local/memcached/ make make install 有时需要创建软链接 ln -s /usr/local/lib/libevent-2.0.so.5 /lib/libevent-2.0.so.5 memcached的启动 ./memcached -d -m 2048 -l 10.0.0.40 -p 11211 -d 守护进程的方式启动 内存设置------------------- -m 制定内存 -M 内存不够是禁止LRU,报错 -n 48 初始化chuck=key+suffix+value+32结构体,默认48字节 -f 增长银子,默认1.25 -L 启动大内存页,可以降低内存浪费,改进性能 链接设置------------------ -l 服务器名 -p TCP端口号,默认11211 -U UDP端口 默认11211 -c 设置最大并发的线程数 -t 线程数 默认4,由于memcached采用NIO,过多线程作用不大 -P 保存memcached的pid文件 -C 禁止使用那个CAS命令,可以禁止版本计数,减少开销 -R 每个event连接最大并发数,默认20 -h 显示帮助 连接到memcached服务器 telnet localhost 11211/telnet localhost 11211 stats /shell& echo stats | nc localhost 11211 watch "echo stats | nc 192.168.1.123 11200" (实时状态) STAT pid 22021 STAT uptime 78 STAT time 1366042693 STAT version 1.4.7 STAT libevent 2.0.13-stable STAT pointer_size 32 STAT rusage_user 0.000000 STAT rusage_system 0.000000 ----------连接数是否太多-------------------- STAT curr_connections 5 ------open连接数量 STAT total_connections 6 -----服务器运行以来接受的连接总数 ---------------------------- STAT connection_structures 6 STAT cmd_get 0 ----取回请求总数 STAT cmd_set 0 ----存储请求总数 STAT cmd_flush 0 ----------命中率+STAT cmd_get 0 ------------- STAT get_hits 0 ---------请求成功的总次数 STAT get_misses 0 -------请求失败的总次数 ------------------------------------------- STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 7 ------------服务器从网络读取到的总字节数 STAT bytes_written 0 ---------服务器向网络发送的总字节 STAT limit_maxbytes 2147483648 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT bytes 0 STAT curr_items 0 STAT total_items 0 STAT evictions 0 STAT reclaimed 0 <command> <key> <flags> <expiretime> <bytes> [version] - <flags> 是在取回内容时,与数据和发送块一同保存服务器上的任意16位无符号整形(用十进制来书写)。客户端可以用它作为“位域”来存储一些特定的信息;它对服务器是不透明的。 <expiretime> 0表示永远,《30天60*60*24*30》 <bytes> value的字节数 <command name> is "set", "add" or "replace" set 意思是 “储存此数据” add 意思是 “储存此数据,只在服务器*未*保留此键值的数据时” (key不存在是保存) replace意思是 “储存此数据,只在服务器*曾*保留此键值的数据时” (key存在时replace) "set" means "store this data". "add" means "store this data, but only if the server *doesn't* already hold data for this key". "replace" means "store this data, but only if the server *does* already hold data for this key". set 无论如何都进行存储 add 只有key不存在时进行添加 repalce 只有数据存在时进行替换 cas操作,means:check and set 只有版本号相匹配是才能存取,否则返回EXISTS 目的:多客户端并发修改同一条记录的问题,防止使用改变了的key/valuee对 status slabs 区块数据统计 stats slabs STAT 1:chunk_size 80 STAT 1:chunks_per_page 13107 STAT 1:total_pages 1 STAT 1:total_chunks 13107 STAT 1:used_chunks 2 STAT 1:free_chunks 1 STAT 1:free_chunks_end 13104 STAT 1:mem_requested 111 STAT 1:get_hits 4 STAT 1:cmd_set 6 STAT 1:delete_hits 0 STAT 1:incr_hits 0 STAT 1:decr_hits 0 STAT 1:cas_hits 0 STAT 1:cas_badval 0 STAT active_slabs 1 STAT total_malloced 1048560 stats settings 设置查看 stats settings STAT maxbytes 2147483648 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 11211 STAT inter 127.0.0.1 STAT verbosity 0 STAT oldest 0 STAT evictions on STAT domain_socket NULL STAT umask 700 STAT growth_factor 1.25 STAT chunk_size 48 STAT num_threads 4 STAT num_threads_per_udp 4 STAT stat_key_prefix : STAT detail_enabled no STAT reqs_per_event 20 STAT cas_enabled yes STAT tcp_backlog 1024 STAT binding_protocol auto-negotiate STAT auth_enabled_sasl no STAT item_size_max 1048576 stats items 数据项统计 stats items STAT items:1:number 2 STAT items:1:age 13982 STAT items:1:evicted 0 STAT items:1:evicted_nonzero 0 STAT items:1:evicted_time 0 STAT items:1:outofmemory 0 STAT items:1:tailrepairs 0 STAT items:1:reclaimed 0 END stats sizes 对象数据统计 stats sizes STAT 64 2 END ///////////// 注意点 1,必须长度适合才可以存取<bytes> 2,set 存取 3,add只能添加不存在的key 4,replace只能操作存在的key 5, gets版本书+1 6,cas check and set 多客户端并发 版本号匹配才可以存取 set mc 12 0 9 memcached STORED get mc VALUE mc 12 9 memcached END add mc 12 0 9 hadooperr NOT_STORED get mc VALUE mc 12 9 memcached END repalace mc 12 0 9 ERROR get mc VALUE mc 12 9 memcached END replace mc 12 0 9 memcachef STORED get mc VALUE mc 12 9 memcachef END replace kkk 0 0 5 mmmmm NOT_STORED gets mc VALUE mc 12 9 5 memcachef END get mc VALUE mc 12 9 memcachef END gets mc VALUE mc 12 9 5 memcachef END replace mc 12 0 9 memcacheg STORED get mc VALUE mc 12 9 memcacheg END gets mc VALUE mc 12 9 6 memcacheg END cas mc 21 0 9 6 gets mc STORED gets mc VALUE mc 21 9 7 gets mc END ---只有版本号匹配才可以存取,否则EXISTS cas mc 12 0 9 6 memcaches EXISTS gets mc VALUE mc 21 9 7 gets mc END 打算在看看UC的UCMQ: https://github.com/ucweb/ucmq
相关 队列的实现 目录 一、 队列的概念以及结构 二、 队列的实现 三、习题 3.1 选择题 3.2 用队列实现栈 3.3 用栈实现队列 3.4 设计循环队列 --------- 悠悠/ 2023年10月13日 12:19/ 0 赞/ 95 阅读
相关 LeetCode刷题:栈和队列的相关题目 前言 1.用栈来实现队列 1.1思路 1.2图示 1.3代码 2.用队列来实现栈 2.2思路 ゝ一世哀愁。/ 2023年09月28日 15:30/ 0 赞/ 37 阅读
相关 队列的实现 文章目录 队列的定义 队列的抽象数据类型定义 队列的顺序实现 顺序队列的基本操作 入队 出队 普通顺序队列的缺陷 偏执的太偏执、/ 2023年06月23日 15:28/ 0 赞/ 69 阅读
相关 队列 的理解 队列 的理解 队列最鲜明的特点是先进先出(First\-In First-Out,FIFO)是一种特殊的线性表,和栈一样,队列是一种操作受限制的线性表。进行插入操作的 た 入场券/ 2022年08月04日 13:45/ 0 赞/ 202 阅读
相关 队列的相关操作_顺序存储 \include <bits/stdc++.h> //\defi MaxSize 1000 ///循环队列 typedef int Position; 落日映苍穹つ/ 2022年06月15日 07:56/ 0 赞/ 214 阅读
相关 队列的实现 include <iostream.h> include <malloc.h> const int QueueSize=20; typedef 冷不防/ 2022年06月13日 02:56/ 0 赞/ 265 阅读
相关 队列的练习 include<stdio.h> include<malloc.h> define OK 1 define ERROR 0 t 不念不忘少年蓝@/ 2022年06月12日 00:52/ 0 赞/ 181 阅读
相关 队列的实现 就是考察如何实现一个队列 这道题考察的是细节 代码如下: ifndef QUEUE_H define QUEUE_H include<casser 秒速五厘米/ 2022年05月26日 11:51/ 0 赞/ 232 阅读
相关 memcached,memcacheq队列的相关 ------------------------------------------------------------ ----------------- 秒速五厘米/ 2022年01月14日 06:45/ 0 赞/ 205 阅读
相关 队列的应用 / chen.cpp : 定义控制台应用程序的入口点。 / include "stdafx.h" include <iostream> Bertha 。/ 2021年09月15日 06:56/ 0 赞/ 417 阅读
还没有评论,来说两句吧...