{"id":201123,"date":"2025-05-10T08:24:48","date_gmt":"2025-05-10T00:24:48","guid":{"rendered":"https:\/\/server.hk\/cnblog\/201123\/"},"modified":"2025-05-10T08:24:48","modified_gmt":"2025-05-10T00:24:48","slug":"redis%e9%83%a8%e7%bd%b2%e5%8f%8a%e5%90%84%e7%a7%8d%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e4%bd%bf%e7%94%a8%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/201123\/","title":{"rendered":"redis\u90e8\u7f72\u53ca\u5404\u79cd\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u547d\u4ee4\u8be6\u89e3"},"content":{"rendered":"<p><b><\/b> <\/p>\n<h1>redis\u90e8\u7f72\u53ca\u5404\u79cd\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u547d\u4ee4\u8be6\u89e3<\/h1>\n<p><span style=\"cursor: pointer\"><i><\/i>\u6536\u85cf<\/span> <\/p>\n<p>\u77e5\u8bc6\u70b9\u638c\u63e1\u4e86\uff0c\u8fd8\u9700\u8981\u4e0d\u65ad\u7ec3\u4e60\u624d\u80fd\u719f\u7ec3\u8fd0\u7528\u3002\u4e0b\u9762golang\u5b66\u4e60\u7f51\u7ed9\u5927\u5bb6\u5e26\u6765\u4e00\u4e2a\u6570\u636e\u5e93\u5f00\u53d1\u5b9e\u6218\uff0c\u624b\u628a\u624b\u6559\u5927\u5bb6\u5b66\u4e60\u300aredis\u90e8\u7f72\u53ca\u5404\u79cd\u6570\u636e\u7c7b\u578b\u4f7f\u7528\u547d\u4ee4\u8be6\u89e3\u300b\uff0c\u5728\u5b9e\u73b0\u529f\u80fd\u7684\u8fc7\u7a0b\u4e2d\u4e5f\u5e26\u5927\u5bb6\u91cd\u65b0\u6e29\u4e60\u76f8\u5173\u77e5\u8bc6\u70b9\uff0c\u6e29\u6545\u800c\u77e5\u65b0\uff0c\u56de\u5934\u770b\u770b\u8bf4\u4e0d\u5b9a\u53c8\u6709\u4e0d\u4e00\u6837\u7684\u611f\u609f\uff01<\/p>\n<h2>\u7f16\u8bd1\u5b89\u88c5redis<\/h2>\n<h3>\u5f00\u59cb\u90e8\u7f72<\/h3>\n<pre>[root@mcw01 ~]$ ls\nanaconda-ks.cfg  mongodb-linux-x86_64-3.2.8.tgz\n[root@mcw01 ~]$ wget http:\/\/download.redis.io\/releases\/redis-4.0.10.tar.gz\n--2022-03-05 18:27:02--  http:\/\/download.redis.io\/releases\/redis-4.0.10.tar.gz\nResolving download.redis.io (download.redis.io)... 45.60.125.1\nConnecting to download.redis.io (download.redis.io)|45.60.125.1|:80... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 1738465 (1.7M) [application\/octet-stream]\n\nSaving to: \u2018redis-4.0.10.tar.gz'\n\n100%[====================&gt;] 1,738,465   63.4KB\/s   in 25s    \n\n2022-03-05 18:27:27 (68.2 KB\/s) - \u2018redis-4.0.10.tar.gz' saved [1738465\/1738465]\n\nanaconda-ks.cfg  mongodb-linux-x86_64-3.2.8.tgz  redis-4.0.10.tar.gz\n[root@mcw01 ~]$ tar xf redis-4.0.10.tar.gz \nanaconda-ks.cfg  mongodb-linux-x86_64-3.2.8.tgz  redis-4.0.10  redis-4.0.10.tar.gz\n[root@mcw01 ~]$ cd redis-4.0.10\/\n[root@mcw01 ~\/redis-4.0.10]$ ls  #\u6709makefile\u6587\u4ef6\uff0c\u5c31\u4e0d\u9700\u8981.\/configure\u914d\u7f6e\n00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests\nBUGS             deps     MANIFESTO  runtest          sentinel.conf     utils\nCONTRIBUTING     INSTALL  README.md  runtest-cluster  src\n[root@mcw01 ~\/redis-4.0.10]$ make<\/pre>\n<h3>\u62a5\u9519 gcc\u547d\u4ee4\u6ca1\u6709\u627e\u5230\uff1a<\/h3>\n<pre>cd hiredis &amp;&amp; make static\nmake[3]: Entering directory `\/root\/redis-4.0.10\/deps\/hiredis'\ngcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c\nmake[3]: gcc: Command not found\nmake[3]: *** [net.o] Error 127\nmake[3]: Leaving directory `\/root\/redis-4.0.10\/deps\/hiredis'\nmake[2]: *** [hiredis] Error 2\nmake[2]: Leaving directory `\/root\/redis-4.0.10\/deps'\nmake[1]: [persist-settings] Error 2 (ignored)\n    CC adlist.o\n\/bin\/sh: cc: command not found\nmake[1]: *** [adlist.o] Error 127\nmake[1]: Leaving directory `\/root\/redis-4.0.10\/src'\nmake: *** [all] Error 2<\/pre>\n<h3>#\u89e3\u51b3\u7f16\u8bd1\u5b89\u88c5\u6240\u9700\u7684\u4f9d\u8d56\u73af\u5883\u7ee7\u7eed\u90e8\u7f72<\/h3>\n<pre>um install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y\n\u7136\u540e\u91cd\u65b0\u6267\u884c:\n[root@mcw01 ~\/redis-4.0.10]$ make  #\u53d1\u73b0\u62a5\u9519\u6ca1\u6709\u67d0\u4e2a\u76ee\u5f55\u6216\u6587\u4ef6\u3002\u5728\u8fd9\u4e4b\u524d\u7f16\u8bd1\u5931\u8d25\u4e86\uff0c\u76ee\u5f55\u88ab\u6539\u53d8\u4e86\u90e8\u5206\uff0c\u6240\u4ee5\u76f4\u63a5\u5220\u9664\u91cd\u65b0\u89e3\u538b\uff0c\u7136\u540emake\u7f16\u8bd1\n......\nHint: It's a good idea to run 'make test' ;)\nmake[1]: Leaving directory `\/root\/redis-4.0.10\/src'\n[root@mcw01 ~\/redis-4.0.10]$ ls\n00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests\nBUGS             deps     MANIFESTO  runtest          sentinel.conf     utils\nCONTRIBUTING     INSTALL  README.md  runtest-cluster  src\n[root@mcw01 ~\/redis-4.0.10]$ make install \ncd src &amp;&amp; make install\nmake[1]: Entering directory `\/root\/redis-4.0.10\/src'\n    CC Makefile.dep\n    INSTALL install\n[root@mcw01 ~\/redis-4.0.10]$ \n[root@mcw01 ~\/redis-4.0.10]$ redis-c   #\u5f53\u7f16\u8bd1\u597d\u4e4b\u540e\uff0c\u5c31\u53ef\u4ee5\u547d\u4ee4\u8865\u5168\uff0c\u4e5f\u5c31\u662f\u5df2\u7ecf\u914d\u7f6e\u597d\u73af\u5883\u53d8\u91cf\u4e86\nredis-check-aof  redis-check-rdb  redis-cli        \n[root@mcw01 ~\/redis-4.0.10]$ which redis-server  #\u9ed8\u8ba4\u7f16\u8bd1\u5b89\u88c5\u5230\/usr\/local\u4e0b\u53bb\u4e86\n\/usr\/local\/bin\/redis-server\n[root@mcw01 ~\/redis-4.0.10]$<\/pre>\n<h3>redis\u670d\u52a1\u7aef\u8fd0\u884c\u548c\u5ba2\u6237\u7aef\u8fde\u63a5<\/h3>\n<pre>[root@mcw01 ~]$ redis-server  #\u5b89\u88c5\u597d\u4e4b\u540e\uff0c\u76f4\u63a5\u8fd0\u884c\u8fd9\u4e2a\u547d\u4ee4\n24270:C 05 Mar 18:43:08.857 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo\n24270:C 05 Mar 18:43:08.857 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=24270, just started\n24270:C 05 Mar 18:43:08.857 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server \/path\/to\/redis.conf\n                _._                                                  \n           _.-``__ ''-._                                             \n      _.-``    `.  `_.  ''-._           Redis 4.0.10 (00000000\/0) 64 bit\n  .-`` .-```.  ```\\\/    _.,_ ''-._                                   \n (    '      ,       .-`  | `,    )     Running in standalone mode\n |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379\n |    `-._   `._    \/     _.-'    |     PID: 24270\n  `-._    `-._  `-.\/  _.-'    _.-'                                   \n |`-._`-._    `-.__.-'    _.-'_.-'|                                  \n |    `-._`-._        _.-'_.-'    |           http:\/\/redis.io        \n  `-._    `-._`-.__.-'_.-'    _.-'                                   \n |    `-._`-._        _.-'_.-'    |                                  \n      `-._    `-.__.-'    _.-'                                       \n          `-._        _.-'                                           \n              `-.__.-'                                               \n24270:M 05 Mar 18:43:08.880 # Server initialized\n24270:M 05 Mar 18:43:08.880 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to \/etc\/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.\n24270:M 05 Mar 18:43:08.880 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never &gt; \/sys\/kernel\/mm\/transparent_hugepage\/enabled' as root, and add it to your \/etc\/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.\n24270:M 05 Mar 18:43:08.880 * Ready to accept connections\n\u5ba2\u6237\u7aef\u8fde\u63a5\uff1a\n[root@mcw01 ~]$ redis-cli 127.0.0.1 6379  ^C #\u6211\u518d\u5f00\u4e00\u4e2a\u7a97\u53e3\uff0c\u9ed8\u8ba4\u8fde\u63a5\u7684ip \u7aef\u53e3\n[root@mcw01 ~]$ redis-cli  #\u8fde\u4e0a\u4e4b\u540e\uff0cping\u547d\u4ee4\uff0c\u8fd4\u56depong,\u8bf4\u660e\u8fde\u63a5\u6210\u529f\u7684\n127.0.0.1:6379&gt; ping\nPONG\n127.0.0.1:6379&gt;<\/pre>\n<h3>redis\u914d\u7f6e<\/h3>\n<pre>[root@mcw01 ~]$ ln -s redis-4.0.10  redis \n[root@mcw01 ~]$ ls\nanaconda-ks.cfg  dump.rdb  mongodb-linux-x86_64-3.2.8.tgz  redis  redis-4.0.10  redis-4.0.10.tar.gz\n[root@mcw01 ~]$ ls redis\n00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests\nBUGS             deps     MANIFESTO  runtest          sentinel.conf     utils\nCONTRIBUTING     INSTALL  README.md  runtest-cluster  src\n[root@mcw01 ~]$ cd redis\n[root@mcw01 ~\/redis]$ egrep -v \"^#|^$\" redis.conf &gt;mcwRedis.conf\n[root@mcw01 ~\/redis]$ cat mcwRedis.conf \nbind 127.0.0.1   \nprotected-mode yes  #\u4fdd\u62a4\u6a21\u5f0f\u5f00\u542f\uff0c\u5e76\u4e14\u7ed1\u5b9aip\u662f\u672c\u673a\uff0c\u5e94\u8be5\u662f\u4e0d\u652f\u6301\u8fdc\u7a0b\u8bbf\u95ee\uff0c\u53ea\u652f\u6301\u672c\u673a\u8bbf\u95ee\u3002\nport 6379\ntcp-backlog 511\ntimeout 0\ntcp-keepalive 300\ndaemonize no\nsupervised no\npidfile \/var\/run\/redis_6379.pid\nloglevel notice\nlogfile \"\"\ndatabases 16\nalways-show-logo yes\nsave 900 1\nsave 300 10\nsave 60 10000\nstop-writes-on-bgsave-error yes\nrdbcompression yes\nrdbchecksum yes\ndbfilename dump.rdb\ndir .\/\nslave-serve-stale-data yes\nslave-read-only yes\nrepl-diskless-sync no\nrepl-diskless-sync-delay 5\nrepl-disable-tcp-nodelay no\nslave-priority 100\nlazyfree-lazy-eviction no\nlazyfree-lazy-expire no\nlazyfree-lazy-server-del no\nslave-lazy-flush no\nappendonly no\nappendfilename \"appendonly.aof\"\nappendfsync everysec\nno-appendfsync-on-rewrite no\nauto-aof-rewrite-percentage 100\nauto-aof-rewrite-min-size 64mb\naof-load-truncated yes\naof-use-rdb-preamble no\nlua-time-limit 5000\nslowlog-log-slower-than 10000\nslowlog-max-len 128\nlatency-monitor-threshold 0\nnotify-keyspace-events \"\"\nhash-max-ziplist-entries 512\nhash-max-ziplist-value 64\nlist-max-ziplist-size -2\nlist-compress-depth 0\nset-max-intset-entries 512\nzset-max-ziplist-entries 128\nzset-max-ziplist-value 64\nhll-sparse-max-bytes 3000\nactiverehashing yes\nclient-output-buffer-limit normal 0 0 0\nclient-output-buffer-limit slave 256mb 64mb 60\nclient-output-buffer-limit pubsub 32mb 8mb 60\nhz 10\naof-rewrite-incremental-fsync yes\n[root@mcw01 ~\/redis]$<\/pre>\n<h3>redis\u7b80\u5355\u914d\u7f6e\u5e76\u542f\u52a8<\/h3>\n<pre>\n[root@mcw01 ~\/redis]$ cat mcwRedis.conf \nbind 10.0.0.11\nprotected-mode yes\nport 6379\nrequirepass mcw123 #\u914d\u7f6e\u8ba4\u8bc1\u5bc6\u7801\ndaemonize yes #\u540e\u53f0\u5b88\u62a4\u8fdb\u7a0b\u7684\u65b9\u5f0f\u5f00\u542f\npidfile \/var\/run\/redis_6379.pid\nloglevel notice\nlogfile \"\"\n[root@mcw01 ~\/redis]$ \n[root@mcw01 ~\/redis]$ ls  \n00-RELEASENOTES  COPYING  Makefile       README.md   runtest-cluster   src\nBUGS             deps     MANIFESTO      redis.conf  runtest-sentinel  tests\nCONTRIBUTING     INSTALL  mcwRedis.conf  runtest     sentinel.conf     utils\n[root@mcw01 ~\/redis]$ redis-server mcwRedis.conf  #\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u542f\u52a8\u3002\u8fd9\u5e94\u8be5\u662f\u540e\u9762\u6709\u6ce8\u91ca\u5bfc\u81f4\u7684\u5427\uff0c\u53bb\u6389\u6ce8\u91ca\n*** FATAL CONFIG FILE ERROR ***\nReading the configuration file, at line 4\n&gt;&gt;&gt; 'requirepass mcw123 #\u914d\u7f6e\u8ba4\u8bc1\u5bc6\u7801'\nBad directive or wrong number of arguments\n\u53bb\u6389\u6ce8\u91ca,\u7136\u540e\u6210\u529f\u542f\u52a8\uff0c\u8fd9\u91cc\u4e0d\u80fd\u5728\u914d\u7f6e\u540e\u9762\u52a0\u6ce8\u91ca\uff0c\u5bb9\u6613\u51fa\u9519\n[root@mcw01 ~\/redis]$ vim mcwRedis.conf \nrequirepass mcw123\ndaemonize yes\n[root@mcw01 ~\/redis]$ redis-server mcwRedis.conf \n24391:C 05 Mar 19:10:38.749 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo\n24391:C 05 Mar 19:10:38.749 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=24391, just started\n24391:C 05 Mar 19:10:38.749 # Configuration loaded\n[root@mcw01 ~\/redis]$ netstat -lntup|grep redis #\u6210\u529f\u542f\u52a8\u4e86\ntcp        0      0 10.0.0.11:6379          0.0.0.0:*               LISTEN      24392\/redis-server  \n[root@mcw01 ~\/redis]$ redis-cli  #\u73b0\u5728\u76f4\u63a5\u8fd9\u4e48\u8fde\u63a5\u5c31\u4e0d\u884c\u4e86\nCould not connect to Redis at 127.0.0.1:6379: Connection refused\nnot connected&gt; \n[root@mcw01 ~\/redis]$ redis-cli  -h 10.0.0.11 -p 6379   #\u6307\u5b9aip\u7aef\u53e3\u8fde\u63a5\n10.0.0.11:6379&gt; ping\n(error) NOAUTH Authentication required.\n10.0.0.11:6379&gt; auth mcw123\nOK\n10.0.0.11:6379&gt; ping  #\u8ba4\u8bc1\u4e4b\u540e\u5c31\u53ef\u4ee5\u6b63\u5e38\u6267\u884c\u547d\u4ee4\u4e86\nPONG\n10.0.0.11:6379&gt;<\/pre>\n<h3>set\u3001get\u547d\u4ee4<\/h3>\n<pre>10.0.0.11:6379&gt; set name mcw\nOK\n10.0.0.11:6379&gt; get name\n\"mcw\"\n10.0.0.11:6379&gt; set age  18  \nOK\n10.0.0.11:6379&gt; get age  #\u5b83\u5c06\u503c\u6539\u4e3a\u5b57\u7b26\u4e32\u7c7b\u578b\u7684\u4e86\n\"18\"\n10.0.0.11:6379&gt;<\/pre>\n<h3>\u7b80\u5355\u914d\u7f6e\u6587\u4ef6\u4ecb\u7ecd<\/h3>\n<pre>bind 192.168.182.130  #\u7ed1\u5b9a\u670d\u52a1\u7aef\u5730\u5740 \nprotected-mode yes    #\u5b89\u5168\u6a21\u5f0f \nport 6800        #\u7aef\u53e3 \nrequirepass  haohaio                #\u5bc6\u7801                                                                       \ndaemonize yes    #\u540e\u53f0\u8fd0\u884c \npidfile \/var\/run\/redis_6379.pid    #\u8fdb\u7a0bid\u6587\u4ef6\nloglevel notice        #\u65e5\u5fd7\u7b49\u7ea7\nlogfile \"\"<\/pre>\n<h2>redis\u57fa\u7840\u6570\u636e\u7c7b\u578b<\/h2>\n<p>redis\u662f\u4e00\u79cd\u9ad8\u7ea7\u7684key\uff1avalue\u5b58\u50a8\u7cfb\u7edf\uff0c\u5176\u4e2dvalue\u652f\u6301\u4e94\u79cd\u6570\u636e\u7c7b\u578b<br \/>&nbsp; &nbsp; \u5b57\u7b26\u4e32\uff08strings\uff09<br \/>&nbsp; &nbsp; \u6563\u5217\uff08hashes\uff09<br \/>&nbsp; &nbsp; \u5217\u8868\uff08lists\uff09<br \/>&nbsp; &nbsp; \u96c6\u5408\uff08sets\uff09<br \/>&nbsp; &nbsp; \u6709\u5e8f\u96c6\u5408\uff08sorted sets\uff09 &nbsp;<\/p>\n<h2>redis\u547d\u4ee4<\/h2>\n<h3>redis\u7b80\u5355\u547d\u4ee4<\/h3>\n<p>keys * \u67e5\u770b\u6240\u6709key<br \/>type key \u67e5\u770bkey\u7c7b\u578b<br \/>expire key seconds \u8fc7\u671f\u65f6\u95f4<br \/>ttl key \u67e5\u770bkey\u8fc7\u671f\u5269\u4f59\u65f6\u95f4 -2\u8868\u793akey\u5df2\u7ecf\u4e0d\u5b58\u5728\u4e86<br \/>persist \u53d6\u6d88key\u7684\u8fc7\u671f\u65f6\u95f4 -1\u8868\u793akey\u5b58\u5728\uff0c\u6ca1\u6709\u8fc7\u671f\u65f6\u95f4<\/p>\n<p>exists key \u5224\u65adkey\u5b58\u5728 \u5b58\u5728\u8fd4\u56de1 \u5426\u52190<br \/>del keys \u5220\u9664key \u53ef\u4ee5\u5220\u9664\u591a\u4e2a<br \/>dbsize \u8ba1\u7b97key\u7684\u6570\u91cf<br \/>flushdb #\u6e05\u9664redis\u6240\u6709key,\u614e\u7528<br \/>flushdb #\u6e05\u9664redis\u6240\u6709key,\u614e\u7528<br \/>flushdb #\u6e05\u9664redis\u6240\u6709key,\u614e\u7528<\/p>\n<pre>keys * \n10.0.0.11:6379&gt; keys *\n1) \"age\"\n2) \"name\"\n10.0.0.11:6379&gt; set gender man\nOK\n1) \"gender\"\n2) \"age\"\n3) \"name\"\n10.0.0.11:6379&gt; \nkeys *         \u67e5\u770b\u6240\u6709key\ntype key      \u67e5\u770bkey\u7c7b\u578b\n\u6dfb\u52a0\u4e00\u4e2a\u5217\u8868\uff0c\u67e5\u770bkey\u7c7b\u578b\uff0c\u662f\u5217\u8868\u7c7b\u578b\n10.0.0.11:6379&gt; type name\nstring\n10.0.0.11:6379&gt; LPUSH paidui1 xiaoma mcw\n(integer) 2\n10.0.0.11:6379&gt; keys * \n1) \"paidui1\"\n2) \"gender\"\n3) \"age\"\n4) \"name\"\n10.0.0.11:6379&gt; type paidui1\nlist\nexpire key seconds    \u8fc7\u671f\u65f6\u95f4\nttl key     \u67e5\u770bkey\u8fc7\u671f\u5269\u4f59\u65f6\u95f4        -2\u8868\u793akey\u5df2\u7ecf\u4e0d\u5b58\u5728\u4e86\n\u7ed9\u5df2\u6709\u7684paidui1\u8bbe\u7f6e\u4e00\u4e2a\u8fc7\u671f\u65f6\u95f4\u591a\u5c11\u79d2\uff0c\u7136\u540ettl  key\u53ef\u4ee5\u67e5\u770b\u8fc7\u671f\u65f6\u95f4\uff0c\u5f53-2\u65f6\u5c31\u5df2\u7ecf\u8fc7\u671f\u4e86\uff0c\u8fc7\u671f\u4e86\u5c31\u5df2\u7ecf\u88ab\u79fb\u9664\u4e86\n10.0.0.11:6379&gt; EXPIRE paidui1 10\n(integer) 1\n10.0.0.11:6379&gt; ttl paidui1\n(integer) -2\npersist     \u53d6\u6d88key\u7684\u8fc7\u671f\u65f6\u95f4   -1\u8868\u793akey\u5b58\u5728\uff0c\u6ca1\u6709\u8fc7\u671f\u65f6\u95f4\n\u6bd4\u5982\u4e0b\u9762\uff0c\u5c06name\u8bbe\u7f6e50\u79d2\u8fc7\u671f\uff0c\u5f53\u8981\u53d6\u6d88name\u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u6267\u884c\u547d\u4ee4\u540e\uff0cttl\u503c\u53d8\u6210-1\uff0c\u5c31\u4e0d\u4f1a\u51fa\u73b0\u8fc7\u671f\u5220\u9664\u7684\u60c5\u51b5\u4e86\n10.0.0.11:6379&gt; EXPIRE name 50\n10.0.0.11:6379&gt; ttl name\n(integer) 22\n(integer) 19\n10.0.0.11:6379&gt; PERSIST name\n(integer) -1\nexists key     \u5224\u65adkey\u5b58\u5728    \u5b58\u5728\u8fd4\u56de1    \u5426\u52190\n10.0.0.11:6379&gt; exists name\n10.0.0.11:6379&gt; exists mcw\n(integer) 0\ndel keys     \u5220\u9664key    \u53ef\u4ee5\u5220\u9664\u591a\u4e2a\n4) \"myname\"\n10.0.0.11:6379&gt; del myname\ndbsize         \u8ba1\u7b97key\u7684\u6570\u91cf\n10.0.0.11:6379&gt; dbsize\n(integer) 3\nflushdb  #\u6e05\u9664redis\u6240\u6709key,\u614e\u7528\n10.0.0.11:6379&gt; flushdb\n(empty list or set)\n10.0.0.11:6379&gt;<\/pre>\n<h3>\u5b57\u7b26\u4e32\u7c7b\u578b\u547d\u4ee4<\/h3>\n<pre>redis\u6570\u636e\u7c7b\u578b1,\u5b57\u7b26\u4e32\u7c7b\u578b,\u901a\u8fc7set\u547d\u4ee4,\u8bbe\u7f6e\u5b57\u7b26\u4e32\u7c7b\u578b\u7684key\n    strings\u7c7b\u578b\n    set \u3000\u3000\u8bbe\u7f6ekey\n    get   \u83b7\u53d6key\n    append  \u8ffd\u52a0string\n    mset   \u8bbe\u7f6e\u591a\u4e2a\u952e\u503c\u5bf9\n    mget   \u83b7\u53d6\u591a\u4e2a\u952e\u503c\u5bf9\n    del  \u5220\u9664key\n    incr  \u9012\u589e+1\n    decr  \u9012\u51cf-1<\/pre>\n<pre>set \u3000\u3000\u8bbe\u7f6ekey\nget   \u83b7\u53d6key\nappend  \u8ffd\u52a0string\n10.0.0.11:6379&gt; set \"name\" \"mcw\"\nOK\n10.0.0.11:6379&gt; get name\n\"mcw\"\n10.0.0.11:6379&gt; append \"name\" \"Haoren\"\n(integer) 9\n10.0.0.11:6379&gt; get name\n\"mcwHaoren\"\n10.0.0.11:6379&gt; \nmset   \u8bbe\u7f6e\u591a\u4e2a\u952e\u503c\u5bf9\nmget   \u83b7\u53d6\u591a\u4e2a\u952e\u503c\u5bf9\n10.0.0.11:6379&gt; mset name2 \"xiaoma\" \"name3\" xiaohong\nOK\n10.0.0.11:6379&gt; keys *\n1) \"name2\"\n2) \"name\"\n3) \"name3\"\n10.0.0.11:6379&gt; get name2\n\"xiaoma\"\n10.0.0.11:6379&gt; get name3\n\"xiaohong\"\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; mget name name2 name3\n1) \"mcwHaoren\"\n2) \"xiaoma\"\n3) \"xiaohong\"\n10.0.0.11:6379&gt; \ndel  \u5220\u9664key\n10.0.0.11:6379&gt; keys *\n1) \"name2\"\n2) \"name\"\n3) \"name3\"\n10.0.0.11:6379&gt; del name\n(integer) 1\n10.0.0.11:6379&gt; del name2 name3\n(integer) 2\n10.0.0.11:6379&gt; keys *\n(empty list or set)\n10.0.0.11:6379&gt; \nincr  \u9012\u589e+1\ndecr  \u9012\u51cf-1\n\u76f8\u5f53\u4e8e\u628a\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u5b57\uff0c\u8ba1\u7b97\u540e\u7ed3\u679c\u518d\u6539\u6210\u5b57\u7b26\u4e32\u3002\n\u8fd8\u53ef\u4ee5\u51cf\u4e3a\u8d1f\u503c\n10.0.0.11:6379&gt; keys *\n(empty list or set)\n10.0.0.11:6379&gt; set \"dian zan\" 0\nOK\n10.0.0.11:6379&gt; get \"dian zan\"\n\"0\"\n10.0.0.11:6379&gt; incr \"dian zan\"\n(integer) 1\n10.0.0.11:6379&gt; incr \"dian zan\"\n(integer) 2\n10.0.0.11:6379&gt; get \"dian zan\"\n\"2\"\n10.0.0.11:6379&gt; incr \"dian zan\"\n(integer) 3\n10.0.0.11:6379&gt; get \"dian zan\"\n\"3\"\n10.0.0.11:6379&gt; decr \"dian zan\"\n(integer) 2\n10.0.0.11:6379&gt; get \"dian zan\"\n\"2\"\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; keys *\n1) \"dian zan\"\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; get \"dian zan\"\n\"2\"\n10.0.0.11:6379&gt; decr \"dian zan\"\n(integer) 1\n10.0.0.11:6379&gt; decr \"dian zan\"\n(integer) 0\n10.0.0.11:6379&gt; decr \"dian zan\"\n(integer) -1\n10.0.0.11:6379&gt; decr \"dian zan\"\n(integer) -2\n10.0.0.11:6379&gt; decr \"dian zan\"\n(integer) -3<\/pre>\n<h3>list\u7c7b\u578b,\u53cc\u5411\u961f\u5217<\/h3>\n<p>lpush \u4ece\u5217\u8868\u5de6\u8fb9\u63d2<br \/>rpush \u4ece\u5217\u8868\u53f3\u8fb9\u63d2<br \/>lrange \u83b7\u53d6\u4e00\u5b9a\u957f\u5ea6\u7684\u5143\u7d20 lrange key start stop<br \/>ltrim \u622a\u53d6\u4e00\u5b9a\u957f\u5ea6\u5217\u8868<br \/>lpop \u5220\u9664\u6700\u5de6\u8fb9\u4e00\u4e2a\u5143\u7d20<br \/>rpop \u5220\u9664\u6700\u53f3\u8fb9\u4e00\u4e2a\u5143\u7d20<br \/>lpushx\/rpushx key\u5b58\u5728\u5219\u6dfb\u52a0\u503c\uff0c\u4e0d\u5b58\u5728\u4e0d\u5904\u7406<\/p>\n<pre>lpush         \u4ece\u5217\u8868\u5de6\u8fb9\u63d2\n\u4ece\u5de6\u8fb9\u63d2\u5165\uff0c\u518d\u4ece\u5de6\u8fb9\u83b7\u53d6\uff0c\u5148\u63d2\u5165\u7684\u5728\u91cc\u9762\u540e\u53d6\u51fa\uff0c\u540e\u63d2\u5165\u7684\u5728\u5de6\u8fb9\u5148\u53d6\u51fa\n10.0.0.11:6379&gt; keys *\n(empty list or set)\n10.0.0.11:6379&gt; lpush paidui mcw1 mcw2 mcw3 mcw4\n(integer) 4\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw4\"\n2) \"mcw3\"\n3) \"mcw2\"\n4) \"mcw1\"\n10.0.0.11:6379&gt; lpush paidui mcw5\n(integer) 5\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw5\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n10.0.0.11:6379&gt; \nrpush         \u4ece\u5217\u8868\u53f3\u8fb9\u63d2\n\u4ece\u5217\u8868\u5de6\u8fb9\u53d6\uff0c\u7b2c\u4e00\u4e2a\u53d6\u51fa\u6765\u7684\u662f\u6700\u540e\u63a8\u5165\u7684\uff0c\u6700\u540e\u4e00\u4e2a\u53d6\u51fa\u7684\u662f\u7b2c\u4e00\u4e2a\u63a8\u5165\u7684\u3002\n\u53ef\u4ee5\u60f3\u8c61\u6210\u5982\u4e0b\u6392\u961f\u987a\u5e8f\uff0c mcw5 mcw4 mcw3 mcw2 mcw1   \n\u5f53\u4ece\u53f3\u8fb9\u63a8\u5165mcw6\u7684\u65f6\u5019\u5c31\u662f :mcw5 mcw4 mcw3 mcw2 mcw1 mcw6\n\u5f53\u4ece\u5de6\u8fb9\u53d6\u6570\u636e\u7684\u65f6\u5019\u5c31\u662f\uff1a\n\u7b2c\u4e00\u6b21\u53d6\uff1amcw5\n\u7b2c\u4e8c\u6b21\u53d6: mcw4\n....\n\u7b2c\u516d\u6b21\u53d6\uff1amcw6\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw5\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n10.0.0.11:6379&gt; rpush paidui mcw6\n(integer) 6\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw5\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n6) \"mcw6\"\nlrange          \u83b7\u53d6\u4e00\u5b9a\u957f\u5ea6\u7684\u5143\u7d20  lrange key  start stop\n\u53d6\u5217\u8868\u7c7b\u578b\u7684\u6570\u636e\uff0c\u6307\u5b9a\u5f00\u59cb\u6570\u636e\u548c\u7ed3\u675f\u6570\u636e\uff0c\u6bd4\u5982\u5f00\u59cb0\uff0c\u7ed3\u675f-1\uff0c\u8fd9\u662f\u53d6\u5217\u8868\u6240\u6709\u7684\u503c\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw5\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; keys * \n1) \"paidui\"\n10.0.0.11:6379&gt; type paidui\nlist\n10.0.0.11:6379&gt; get paidui   #\u5217\u8868\u7c7b\u578b\u4e0d\u80fd\u7528get\u53d6\u503c\n(error) WRONGTYPE Operation against a key holding the wrong kind of value\n10.0.0.11:6379&gt; lrange paid 0 -1  #\u4e0d\u5b58\u5728\u7684\u952e\n(empty list or set)\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw5\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n10.0.0.11:6379&gt; \nltrim               \u622a\u53d6\u4e00\u5b9a\u957f\u5ea6\u5217\u8868\n\u6839\u636e\u67e5\u8be2\u53ef\u77e5\u5217\u8868\u6570\u636e\u987a\u5e8f\u5982\u4e0b\uff1amcw5 mcw4 mcw3 mcw2 mcw1\n\u7d22\u5f15\u5206\u522b\u662f\uff1a                   0    1    2     3    4  \n\u8fd9\u91cc\u662f\u4ecepaidui\u5de6\u8fb9\u622a\u53d6\uff0c\u4ece\u7d22\u5f151\u5f00\u59cb\uff0c\u4ece\u7d22\u5f152\u7ed3\u675f\uff0c\u5176\u4e2d\u5305\u542b\u7d22\u5f152\u7684\u6570\u636e\uff0c\u622a\u53d6\u4e4b\u540e\uff0c\u8fd9\u4e2akey\u7684\u503c\u5c31\u53d8\u6210\u622a\u53d6\u7684\u503c\u4e86mcw4 mcw3\n\u7136\u540e\u4ece\u5de6\u8fb9\u67e5\u8be2\uff0c\u7b2c\u4e00\u4e2a\u67e5\u51fa\u6765\u7684\u6570\u636e\u5c31\u662fmcw4,\u7b2c\u4e8c\u4e2a\u5c31\u662fmcw3\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw5\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n10.0.0.11:6379&gt; ltrim paidui 1 2\nOK\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw4\"\n2) \"mcw3\"\n10.0.0.11:6379&gt; \nlpop                 \u5220\u9664\u6700\u5de6\u8fb9\u4e00\u4e2a\u5143\u7d20\nrpop                     \u5220\u9664\u6700\u53f3\u8fb9\u4e00\u4e2a\u5143\u7d20\n\u6839\u636elrange\u53ef\u4ee5\u5217\u8868\u6570\u636e\u7684\u987a\u5e8f\u662f\uff1amcw5 mcw4 mcw3 mcw2 mcw1 mcw6\n\u6240\u4ee5\u4ece\u5de6\u8fb9\u5220\u9664\uff0c\u5220\u7684\u662fmcw5,\u4ece\u53f3\u8fb9\u5220\u9664\uff0c\u5220\u7684\u662fmcw6\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw5\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n6) \"mcw6\"\n10.0.0.11:6379&gt; lpop paidui\n\"mcw5\"\n10.0.0.11:6379&gt; rpop paidui\n\"mcw6\"\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw4\"\n2) \"mcw3\"\n3) \"mcw2\"\n4) \"mcw1\"\n10.0.0.11:6379&gt; \nlpushx\/rpushx                key\u5b58\u5728\u5219\u6dfb\u52a0\u503c\uff0c\u4e0d\u5b58\u5728\u4e0d\u5904\u7406\n\u4e0d\u5b58\u5728\u8fd4\u56de\u4e2a0\u3002\u9ed8\u8ba4key\u4e0d\u5b58\u5728\u4f1a\u521b\u5efakey\u7684\n10.0.0.11:6379&gt; keys * \n1) \"paidui\"\n10.0.0.11:6379&gt; lpushx paid mcw0\n(integer) 0\n10.0.0.11:6379&gt; keys * \n1) \"paidui\"\n10.0.0.11:6379&gt; lpushx paidui mcw0\n(integer) 5\n10.0.0.11:6379&gt; keys * \n1) \"paidui\"\n10.0.0.11:6379&gt; lrange paidui 0 -1\n1) \"mcw0\"\n2) \"mcw4\"\n3) \"mcw3\"\n4) \"mcw2\"\n5) \"mcw1\"\n10.0.0.11:6379&gt;<\/pre>\n<h3>redis\u7684\u96c6\u5408\uff0c\u662f\u4e00\u79cd\u65e0\u5e8f\u7684\u96c6\u5408\uff0c\u96c6\u5408\u4e2d\u7684\u5143\u7d20\u6ca1\u6709\u5148\u540e\u987a\u5e8f\u3002<\/h3>\n<p>\u96c6\u5408\u76f8\u5173\u7684\u64cd\u4f5c\u4e5f\u5f88\u4e30\u5bcc\uff0c\u5982\u6dfb\u52a0\u65b0\u5143\u7d20\u3001\u5220\u9664\u5df2\u6709\u5143\u7d20\u3001\u53d6\u4ea4\u96c6\u3001\u53d6\u5e76\u96c6\u3001\u53d6\u5dee\u96c6\u7b49\u3002\u6211\u4eec\u6765\u770b\u4f8b\u5b50\uff1a<\/p>\n<p>sadd\/srem \u6dfb\u52a0\/\u5220\u9664 \u5143\u7d20<br \/>sismember \u5224\u65ad\u662f\u5426\u4e3aset\u7684\u4e00\u4e2a\u5143\u7d20<br \/>smembers \u8fd4\u56de\u96c6\u5408\u6240\u6709\u7684\u6210\u5458<br \/>sdiff \u8fd4\u56de\u4e00\u4e2a\u96c6\u5408\u548c\u5176\u4ed6\u96c6\u5408\u7684\u5dee\u5f02<br \/>sinter \u8fd4\u56de\u51e0\u4e2a\u96c6\u5408\u7684\u4ea4\u96c6<br \/>sunion \u8fd4\u56de\u51e0\u4e2a\u96c6\u5408\u7684\u5e76\u96c6<\/p>\n<pre>sadd\/srem   \u6dfb\u52a0\/\u5220\u9664 \u5143\u7d20\nsmembers    \u8fd4\u56de\u96c6\u5408\u6240\u6709\u7684\u6210\u5458\n10.0.0.11:6379&gt; keys *\n(empty list or set)\n10.0.0.11:6379&gt; sadd zoo gou mao zhu  #\u6dfb\u52a0\n(integer) 3\n1) \"zoo\"\n10.0.0.11:6379&gt; type zoo\nset\n10.0.0.11:6379&gt; smembers zoo  #\u67e5\u8be2\n1) \"mao\"\n2) \"zhu\"\n3) \"gou\"\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; srem zoo zhu  #\u5220\u9664\n(integer) 1\n10.0.0.11:6379&gt; smembers zoo\n2) \"gou\"\n\u65b0\u589e\u6210\u5458\n10.0.0.11:6379&gt; sadd zoo zhu #\u65b0\u589e\nsismember   \u5224\u65ad\u662f\u5426\u4e3aset\u7684\u4e00\u4e2a\u5143\u7d20\nmao\u662f\u96c6\u5408zoo\u91cc\u7684\u6210\u5458\u5417\uff0c\u662f\uff0c\u8fd4\u56de\u7684\u662f1\uff1b\nzhu\u662f\u96c6\u5408zoo\u91cc\u7684\u6210\u5458\u5417\uff0c\u4e0d\u662f\uff0c\u8fd4\u56de\u7684\u662f0\n10.0.0.11:6379&gt; sismember zoo mao\n10.0.0.11:6379&gt; sismember zoo zhu\n(integer) 0\nsdiff             \u8fd4\u56de\u4e00\u4e2a\u96c6\u5408\u548c\u5176\u4ed6\u96c6\u5408\u7684\u5dee\u5f02\n\u5982\u4e0b\uff0csdiff \u96c6\u54081 \u96c6\u54082 \n\u8fd4\u56de\u96c6\u54081\u4e2d\u6709\u7684\uff0c\u800c\u96c6\u54082\u4e2d\u6ca1\u6709\u7684\u3002\u5c31\u662f\u53d6\u5dee\u96c6\n1) \"zoo2\"\n2) \"zoo\"\n10.0.0.11:6379&gt; smembers zoo2\n1) \"she\"\n3) \"shu\"\n10.0.0.11:6379&gt; sdiff zoo zoo2\n10.0.0.11:6379&gt; sdiff zoo2 zoo\n2) \"shu\"\nsinter           \u8fd4\u56de\u51e0\u4e2a\u96c6\u5408\u7684\u4ea4\u96c6\n\u5982\u4e0b\uff0c\u51e0\u4e2a\u96c6\u5408\u5e94\u8be5\u4e0d\u53ea\u662f\u5305\u542b\u4e24\u4e2a\u96c6\u5408\n10.0.0.11:6379&gt; sinter zoo zoo2\n1) \"zhu\"\n10.0.0.11:6379&gt; sinter zoo2 zoo\nsunion          \u8fd4\u56de\u51e0\u4e2a\u96c6\u5408\u7684\u5e76\u96c6\n\u96c6\u5408\u53d6\u5e76\u96c6\uff0c\u51e0\u4e2a\u96c6\u5408\u5e94\u8be5\u4e0d\u53ea\u662f\u80fd\u7528\u4e24\u4e2a\u96c6\u5408\n10.0.0.11:6379&gt; sunion zoo zoo2\n4) \"mao\"\n5) \"shu\"\n10.0.0.11:6379&gt;<\/pre>\n<h3>\u54c8\u5e0c\u6570\u636e\u7ed3\u6784<\/h3>\n<p>hashes\u5373\u54c8\u5e0c\u3002\u54c8\u5e0c\u662f\u4eceredis-2.0.0\u7248\u672c\u4e4b\u540e\u624d\u6709\u7684\u6570\u636e\u7ed3\u6784\u3002<\/p>\n<p>hashes\u5b58\u7684\u662f\u5b57\u7b26\u4e32\u548c\u5b57\u7b26\u4e32\u503c\u4e4b\u95f4\u7684\u6620\u5c04\uff0c\u6bd4\u5982\u4e00\u4e2a\u7528\u6237\u8981\u5b58\u50a8\u5176\u5168\u540d\u3001\u59d3\u6c0f\u3001\u5e74\u9f84\u7b49\u7b49\uff0c\u5c31\u5f88\u9002\u5408\u4f7f\u7528\u54c8\u5e0c\u3002<\/p>\n<p>hset \u8bbe\u7f6e\u6563\u5217\u503c<br \/>hget \u83b7\u53d6\u6563\u5217\u503c<br \/>hmset \u8bbe\u7f6e\u591a\u5bf9\u6563\u5217\u503c<br \/>hmget \u83b7\u53d6\u591a\u5bf9\u6563\u5217\u503c<br \/>hsetnx \u5982\u679c\u6563\u5217\u5df2\u7ecf\u5b58\u5728\uff0c\u5219\u4e0d\u8bbe\u7f6e\uff08\u9632\u6b62\u8986\u76d6key\uff09<br \/>hkeys \u8fd4\u56de\u6240\u6709fileds<br \/>hvals \u8fd4\u56de\u6240\u6709values<br \/>hlen \u8fd4\u56de\u6563\u5217\u5305\u542b\u57df\uff08field\uff09\u7684\u6570\u91cf<br \/>hdel \u5220\u9664\u6563\u5217\u6307\u5b9a\u7684\u57df\uff08field\uff09<br \/>hexists \u5224\u65ad\u662f\u5426\u5b58\u5728<\/p>\n<pre>hset \u8bbe\u7f6e\u6563\u5217\u503c\nhget  \u83b7\u53d6\u6563\u5217\u503c\n10.0.0.11:6379&gt; hset stu1 name \"mcw\" age 18 height \"170\"\n(integer) 3\n10.0.0.11:6379&gt; keys * \n1) \"stu1\"\n10.0.0.11:6379&gt; type stu1\nhash\n10.0.0.11:6379&gt; hget stu1 name\n\"mcw\"\n10.0.0.11:6379&gt; hget stu1 age\n\"18\"\n10.0.0.11:6379&gt; hget stu1 height\n\"170\"\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; hset new1 title \"happy new year\" content \"ni hao\"\n(integer) 2\n10.0.0.11:6379&gt; \nhmset  \u8bbe\u7f6e\u591a\u5bf9\u6563\u5217\u503c\nhmget  \u83b7\u53d6\u591a\u5bf9\u6563\u5217\u503c\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; keys * \n1) \"stu1\"\n2) \"new1\"\n10.0.0.11:6379&gt; hmget stu1 name age height\n1) \"mcw\"\n2) \"18\"\n3) \"170\"\n10.0.0.11:6379&gt; \nhsetnx   \u5982\u679c\u6563\u5217\u5df2\u7ecf\u5b58\u5728\uff0c\u5219\u4e0d\u8bbe\u7f6e\uff08\u9632\u6b62\u8986\u76d6key\uff09\n10.0.0.11:6379&gt; hsetnx stu2 name \"mcw2\" age 18 height \"168\"\n(error) ERR wrong number of arguments for 'hsetnx' command\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; hsetnx stu2 name \"mcw2\" \n(integer) 1\n10.0.0.11:6379&gt; hsetnx stu2 name \"mcw2\" \n(integer) 0\n10.0.0.11:6379&gt; keys *\n1) \"stu2\"\n2) \"stu1\"\n3) \"new1\"\n10.0.0.11:6379&gt; hsetnx stu2 name \"mcw1\"  \n(integer) 0\n10.0.0.11:6379&gt; hget stu2 name  #\u5b58\u5728stu2\uff0c\u4f7f\u7528hsetnx\u6ca1\u88ab\u4fee\u6539\n\"mcw2\"\n10.0.0.11:6379&gt; hset stu2 name \"mcw1\" \n(integer) 0\n10.0.0.11:6379&gt; hget stu2 name  #\u5b58\u5728stu2\uff0c\u4f7f\u7528hset\u88ab\u4fee\u6539\u4e86\n\"mcw1\"\n10.0.0.11:6379&gt; \nhkeys     \u8fd4\u56de\u6240\u6709fileds\n10.0.0.11:6379&gt; keys *\n1) \"stu2\"\n2) \"stu1\"\n3) \"new1\"\n10.0.0.11:6379&gt; hkeys stu1\n1) \"name\"\n2) \"age\"\n3) \"height\"\n10.0.0.11:6379&gt; \nhvals     \u8fd4\u56de\u6240\u6709values\n10.0.0.11:6379&gt; keys *\n1) \"stu2\"\n2) \"stu1\"\n3) \"new1\"\n10.0.0.11:6379&gt; hvals stu1\n1) \"mcw\"\n2) \"18\"\n3) \"170\"\n10.0.0.11:6379&gt; \nhlen      \u8fd4\u56de\u6563\u5217\u5305\u542b\u57df\uff08field\uff09\u7684\u6570\u91cf\n10.0.0.11:6379&gt; keys *\n1) \"stu2\"\n2) \"stu1\"\n3) \"new1\"\n10.0.0.11:6379&gt; hkeys stu1\n1) \"name\"\n2) \"age\"\n3) \"height\"\n10.0.0.11:6379&gt; hlen stu1\n(integer) 3\n10.0.0.11:6379&gt; hkeys new1\n1) \"title\"\n2) \"content\"\n10.0.0.11:6379&gt; hlen new1\n(integer) 2\n10.0.0.11:6379&gt; \nhdel     \u5220\u9664\u6563\u5217\u6307\u5b9a\u7684\u57df\uff08field\uff09\n10.0.0.11:6379&gt; keys *\n1) \"stu2\"\n2) \"stu1\"\n3) \"new1\"\n10.0.0.11:6379&gt; type stu1\nhash\n10.0.0.11:6379&gt; \n10.0.0.11:6379&gt; hkeys stu1\n1) \"name\"\n2) \"age\"\n3) \"height\"\n10.0.0.11:6379&gt; hdel stu1 height  #\u5220\u9664\u6307\u5b9a\u5b57\u6bb5\n(integer) 1\n10.0.0.11:6379&gt; hkeys stu1\n1) \"name\"\n2) \"age\"\n10.0.0.11:6379&gt; \nhexists    \u5224\u65ad\u662f\u5426\u5b58\u5728\n10.0.0.11:6379&gt; keys *\n1) \"stu2\"\n2) \"stu1\"\n3) \"new1\"\n10.0.0.11:6379&gt; type stu1\nhash\n10.0.0.11:6379&gt; hkeys stu1\n1) \"name\"\n2) \"age\"\n10.0.0.11:6379&gt; hexists stu1 name   #\u5b58\u5728\u5b57\u6bb5\u8fd4\u56de1\n(integer) 1\n10.0.0.11:6379&gt; hexists stu1 height #\u4e0d\u5b58\u5728\u5b57\u6bb5\u8fd4\u56de0\n(integer) 0\n10.0.0.11:6379&gt;<\/pre>\n<h2>\u53d1\u5e03\u8ba2\u9605<\/h2>\n<p>\u4e3b\u8981\u5e94\u7528\uff1a\u901a\u77e5\uff0c\u516c\u544a<br \/>\u53ef\u4ee5\u4f5c\u4e3a\u6d88\u606f\u961f\u5217\u6216\u8005\u6d88\u606f\u7ba1\u9053<\/p>\n<p>\u4e00\u4e2a\u53d1\u5e03\uff0c\u591a\u4e2a\u8ba2\u9605<br \/>\u53d1\u5e03\uff1a\u5e7f\u64ad\u7535\u53f0\u9891\u9053\u80fd\u53d1\u9001\u7ed9\u6240\u6709\u63a5\u6536\u8fd9\u4e2a\u9891\u9053\u7684\u4eba\u58f0\u97f3\u4fe1\u606f<br \/>\u8ba2\u9605\uff1a\u5f88\u591a\u4eba\u90fd\u80fd\u63a5\u6536\u5230\u8fd9\u4e2a\u5e7f\u64ad\u7535\u53f0\u7684\u6d88\u606f<\/p>\n<p>\u6bd4\u5982qq\u7fa4\u516c\u544a\uff1a\u4e00\u4e2a\u53d1\u5e03\uff0c\u591a\u4e2a\u8ba2\u9605\uff08\u63a5\u6536\u5230\uff09<\/p>\n<p>\u5982\u4e0b\uff0c\u4e00\u4e2a\u53d1\u5e03\u8005\uff0c\u4e24\u4e2a\u8ba2\u9605\u8005\uff0c\u8ba2\u9605\u80051\u8ba2\u9605\u8ddfpython\u548clinux\u9891\u9053\u6709\u5173\u7684\u6d88\u606f\uff1b\u8ba2\u9605\u80052\u8ba2\u9605\u548cgolang\u548cLinux\u6709\u611f\u7684\u6d88\u606f<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.17golang.com\/uploads\/20221230\/167236653463ae49c66f54b.png\" class=\"aligncenter\"><\/p>\n<p>\u5f53\u53d1\u5e03\u8005\u53d1\u5e03\u6d88\u606f\u7684\u65f6\u5019\uff0c\u8ba2\u9605\u80051\u63a5\u6536\u5230\u4e86\u8ba2\u9605\u9891\u9053python\u53d1\u6765\u7684\u6d88\u606f<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.17golang.com\/uploads\/20221230\/167236653463ae49c6dd01b.png\" class=\"aligncenter\"><\/p>\n<p>\u5f53\u53d1\u5e03\u8005\u53d1\u5e03\u7ed9linux\u9891\u9053\u7684\u65f6\u5019\uff0c\u4e24\u4e2a\u8ba2\u9605\u4eba\u90fd\u63a5\u6536\u5230\u4e86\u6d88\u606f\u3002\u53d1\u5e03\u8005\u8fd9\u91cc\u8fd8\u8fd4\u56de\u4e86\u51e0\u4e2a\u8ba2\u9605\u4eba\u63a5\u6536\u5230\u4e86\u6d88\u606f\u3002\u4e0a\u9762\u90a3\u6761\u5199\u9519\u4e86\u53d1\u5e03\u5230\u4e00\u4e2a\u6ca1\u6709\u4eba\u8ba2\u9605\u7684\u9891\u9053\u4e0a,\u8fd4\u56de0\u4e2a\u8ba2\u9605\u8005<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.17golang.com\/uploads\/20221230\/167236653563ae49c7493d1.png\" class=\"aligncenter\"><\/p>\n<p>\u53d1\u5e03\u4eba\u53d1\u5e03\u7684\u9891\u9053\u548c\u63a5\u6536\u7684\u9891\u9053\uff0c\u8fd9\u6837\u5199\u662f\u9700\u8981\u7cbe\u51c6\u5224\u65ad\uff0c\u4e0d\u80fd\u6a21\u7cca\u5339\u914d\u63a5\u6536\u6d88\u606f\u7684<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.17golang.com\/uploads\/20221230\/167236653563ae49c7c79ac.png\" class=\"aligncenter\"><\/p>\n<p>\u5f53\u8ba2\u9605\u8005\u8fd9\u91cc\u4f7f\u7528psubscribe\u7684\u65f6\u5019\uff0c\u540e\u9762\u53d8\u6210\u4e86\u6a21\u5f0f<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.17golang.com\/uploads\/20221230\/167236653663ae49c857aec.png\" class=\"aligncenter\"><\/p>\n<p>\u5f53\u8ba2\u9605\u8005\u4f7f\u7528psubscribe\u547d\u4ee4\uff0c\u4e14\u8ba2\u9605\u7684\u9891\u9053\u4f7f\u7528\u901a\u914d\u7b26\u7684\u65f6\u5019\uff0c\u90a3\u4e48\u53d1\u5e03\u8005\u53d1\u5e03\u7684\u80fd\u8ddf\u8ba2\u9605\u8005\u6a21\u7cca\u5339\u914d\u5230\u7684\u9891\u9053\uff0c\u5c31\u88ab\u8ba2\u9605\u8005\u63a5\u6536\u5230\u4e86<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.17golang.com\/uploads\/20221230\/167236653663ae49c8e17da.png\" class=\"aligncenter\"><\/p>\n<p>\u53c2\u8003\uff1a\u535a\u5ba2\u5730\u5740<\/p>\n","protected":false},"excerpt":{"rendered":"<p>redis\u90e8\u7f72\u53ca\u5404\u79cd\u6570\u636e\u7c7b\u578b\u4f7f\u7528&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[],"class_list":["post-201123","post","type-post","status-publish","format-standard","hentry","category-database"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/201123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=201123"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/201123\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=201123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=201123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=201123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}