Linux安装Memcached
2022-11-19 本文已影响0人
右耳菌
本章的内容,都可以在官网中查询到,官网地址:https://www.memcached.org/downloads
- 先安装libevent-devel,这是官网中描述的,大概的原因是因为Memcached依赖于这个库。
yum install libevent-devel
- 然后下载需要的版本,写本文时,最新的稳定版本是1.6.17
wget https://www.memcached.org/files/memcached-1.6.17.tar.gz
- 解压,这里将文件解压到
/usr/local/
下
tar -zxvf memcached-1.6.17.tar.gz -C /usr/local/
- 进行配置和安装
cd /usr/local/memcached-1.6.17/
./configure
make && make install
- 查看帮助文档
memcached -h
展示的内容如下:
memcached 1.6.17
-p, --port=<num> TCP port to listen on (default: 11211)
-U, --udp-port=<num> UDP port to listen on (default: 0, off)
-s, --unix-socket=<file> UNIX socket to listen on (disables network support)
-a, --unix-mask=<mask> access mask for UNIX socket, in octal (default: 700)
-A, --enable-shutdown enable ascii "shutdown" command
-l, --listen=<addr> interface to listen on (default: INADDR_ANY)
-d, --daemon run as a daemon
-r, --enable-coredumps maximize core file limit
-u, --user=<user> assume identity of <username> (only when run as root)
-m, --memory-limit=<num> item memory in megabytes (default: 64)
-M, --disable-evictions return error on memory exhausted instead of evicting
-c, --conn-limit=<num> max simultaneous connections (default: 1024)
-k, --lock-memory lock down all paged memory
-v, --verbose verbose (print errors/warnings while in event loop)
-vv very verbose (also print client commands/responses)
-vvv extremely verbose (internal state transitions)
-h, --help print this help and exit
-i, --license print memcached and libevent license
-V, --version print version and exit
-P, --pidfile=<file> save PID in <file>, only used with -d option
-f, --slab-growth-factor=<num> chunk size growth factor (default: 1.25)
-n, --slab-min-size=<bytes> min space used for key+value+flags (default: 48)
-L, --enable-largepages try to use large memory pages (if available)
-D <char> Use <char> as the delimiter between key prefixes and IDs.
This is used for per-prefix stats reporting. The default is
":" (colon). If this option is specified, stats collection
is turned on automatically; if not, then it may be turned on
by sending the "stats detail on" command to the server.
-t, --threads=<num> number of threads to use (default: 4)
-R, --max-reqs-per-event maximum number of requests per event, limits the
requests processed per connection to prevent
starvation (default: 20)
-C, --disable-cas disable use of CAS
-b, --listen-backlog=<num> set the backlog queue limit (default: 1024)
-B, --protocol=<name> protocol - one of ascii, binary, or auto (default: auto-negotiate)
-I, --max-item-size=<num> adjusts max item size
(default: 1m, min: 1k, max: 1024m)
-F, --disable-flush-all disable flush_all command
-X, --disable-dumping disable stats cachedump and lru_crawler metadump
-W --disable-watch disable watch commands (live logging)
-Y, --auth-file=<file> (EXPERIMENTAL) enable ASCII protocol authentication. format:
user:pass\nuser2:pass2\n
-e, --memory-file=<file> (EXPERIMENTAL) mmap a file for item memory.
use only in ram disks or persistent memory mounts!
enables restartable cache (stop with SIGUSR1)
-o, --extended comma separated list of extended options
most options have a 'no_' prefix to disable
- maxconns_fast: immediately close new connections after limit (default: enabled)
- hashpower: an integer multiplier for how large the hash
table should be. normally grows at runtime. (default starts at: 0)
set based on "STAT hash_power_level"
- tail_repair_time: time in seconds for how long to wait before
forcefully killing LRU tail item.
disabled by default; very dangerous option.
- hash_algorithm: the hash table algorithm
default is murmur3 hash. options: jenkins, murmur3, xxh3
- no_lru_crawler: disable LRU Crawler background thread.
- lru_crawler_sleep: microseconds to sleep between items
default is 100.
- lru_crawler_tocrawl: max items to crawl per slab per run
default is 0 (unlimited)
- read_buf_mem_limit: limit in megabytes for connection read/response buffers.
do not adjust unless you have high (20k+) conn. limits.
0 means unlimited (default: 0)
- no_lru_maintainer: disable new LRU system + background thread.
- hot_lru_pct: pct of slab memory to reserve for hot lru.
(requires lru_maintainer, default pct: 20)
- warm_lru_pct: pct of slab memory to reserve for warm lru.
(requires lru_maintainer, default pct: 40)
- hot_max_factor: items idle > cold lru age * drop from hot lru. (default: 0.20)
- warm_max_factor: items idle > cold lru age * this drop from warm. (default: 2.00)
- temporary_ttl: TTL's below get separate LRU, can't be evicted.
(requires lru_maintainer, default: 61)
- idle_timeout: timeout for idle connections. (default: 0, no timeout)
- slab_chunk_max: (EXPERIMENTAL) maximum slab size in kilobytes. use extreme care. (default: 512)
- watcher_logbuf_size: size in kilobytes of per-watcher write buffer. (default: 256)
- worker_logbuf_size: size in kilobytes of per-worker-thread buffer
read by background thread, then written to watchers. (default: 64)
- track_sizes: enable dynamic reports for 'stats sizes' command.
- no_hashexpand: disables hash table expansion (dangerous)
- modern: enables options which will be default in future.
currently: nothing
- no_modern: uses defaults of previous major version (1.4.x)
- sock_cookie_id: attributes an ID to a socket for ip filtering/firewalls
- External storage (ext_*) related options (see: https://memcached.org/extstore)
- ext_path: file to write to for external storage.
ie: ext_path=/mnt/d1/extstore:1G
- ext_page_size: size in megabytes of storage pages. (default: 64)
- ext_wbuf_size: size in megabytes of page write buffers. (default: 4)
- ext_threads: number of IO threads to run. (default: 1)
- ext_item_size: store items larger than this (bytes, default 512)
- ext_item_age: store items idle at least this long (seconds, default: no age limit)
- ext_low_ttl: consider TTLs lower than this specially (default: 0)
- ext_drop_unread: don't re-write unread values during compaction (default: disabled)
- ext_recache_rate: recache an item every N accesses (default: 2000)
- ext_compact_under: compact when fewer than this many free pages
(default: 1/4th of the assigned storage)
- ext_drop_under: drop COLD items when fewer than this many free pages
(default: 1/4th of the assigned storage)
- ext_max_frag: max page fragmentation to tolerate (default: 0.80)
- ext_max_sleep: max sleep time of background threads in us (default: 1000000)
- slab_automove_freeratio: ratio of memory to hold free as buffer.
(see doc/storage.txt for more info, default: 0.010)
-N, --napi_ids number of napi ids. see doc/napi_ids.txt for more details
- 如果要启动Memcached的话,是不能使用root用户启动的,除非你添加一个
-u
,表示要指定一个用户。
# 创建用户
useradd memcached
# 设置密码
passwd memcached
- 前端启动
- 当前用户为root用户,使用11211端口,指定用为为memcached,最大内存为64M
memcached -p 11211 -u memcached -m 64m -vv
- 当前用户为memcached,使用11211端口,最大内存为64M
memcached -p 11211 -m 64m -vv
- 作为后台服务运行
- 当前用户为root用户,使用11211端口,指定用为为memcached,最大内存为64M,-d 表示作为后台服务运行
memcached -p 11211 -u memcached -m 64m -d
- 当前用户为memcached,使用11211端口,最大内存为64M,-d 表示作为后台服务运行
memcached -p 11211 -m 64m -d
- 附上一些重要的启动配置选项
启动选项:
-d 是启动一个守护进程;
-m 是分配给Memcache使用的内存数量,单位是MB;
-u 是运行Memcache的用户;
-l 是监听的服务器IP地址,可以有多个地址;
-p 是设置Memcache监听的端口,,最好是1024以上的端口;
-c 是最大运行的并发连接数,默认是1024;
-P 是设置保存Memcache的pid文件。
根据上边的选项,给出一个比较完整的例子(下面的-u 也可以指定root哦)
memcached -d -m 64M -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pid
- 测试一下
[root@192 memcached-1.6.17]# telnet 192.168.1.9 11211
Trying 192.168.1.9...
Connected to 192.168.1.9.
Escape character is '^]'.
set foo 0 900 4
neco
STORED
get foo
VALUE foo 0 4
neco
END
如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~