Small Q: None of the work is protracted, except for the work that you do not dare to mix. -Baudelaire
------------------------------Redis profile comparison -----------------------------
Memcached is a high-performance distributed memory object caching system for dynamic Web applications to mitigate database load. It improves the speed of dynamic, database-driven Web sites by caching data and objects in memory to reduce the number of times a database is read.
Redis is a key-value storage system. Similar to memcached, it supports storing the value type relatively more; The default connection port on the Redis server is 6379
1. Redis and memcache all store data in memory, which is the memory database. However, Memcache can also be used to cache other
Things, examples, videos, and so on.
2. Data type--memcache Specify the byte length of the data when adding data, for example:
Set Key3 0 0 8
Lxsymcto
STORED
Redis does not need, for example: Redis 127.0.0.1:6379>set key2 "Lxsymblog"
Ok
Redis 127.0.0.1:6379>get Key2
"Lxsymblog"
3. Virtual memory--redis When the physical memory is exhausted, you can swap some long-unused value to disk
4. Expiration policy--memcache is specified when set, such as set Key1 0 0 8, which never expires.
Redis can be set by example expire, for example expire name 10
5, distributed-set memcache cluster, using Magent to do a master more from; Redis can do a master multi-slave. Can be a master one from
6, storage data security--memcache hang up, the data is gone; Redis can be saved to disk periodically (persisted)
7, after the disaster recovery--memcache hangs, the data cannot restore; Redis data can be recovered by aof after loss
8, Redis support data backup, that is, Master-slave mode of data backup.
--------------------------Installation---------------------------
1. :
wget http://redis.googlecode.com/files/redis-2.6.13.tar.gz
2. Unzip
Tar xzf redis-2.6.13.tar.gz
3. Compile
CD redis-2.6.13
Make
Make install
CP redis.conf/etc/
When the make install command finishes executing, the executable is generated in the/usr/local/bin directory, respectively, Redis-server, REDIS-CLI, Redis-benchmark, Redis-check-aof, Redis-check-dump, they function as follows:
Redis-server:redis Server Daemon Startup program
Redis-cli:redis command-line operation tool. You can also use Telnet to manipulate it based on its plain text protocol.
Redis-benchmark:redis Performance Testing tool to test Redis's read and write performance under current system
REDIS-CHECK-AOF: Data Repair
Redis-check-dump: Check the Export tool
4. Modify the system configuration file, execute the command
A) echo Vm.overcommit_memory=1 >>/etc/sysctl.conf
b) Sysctl Vm.overcommit_memory=1 or perform echo Vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory
0, indicates that the kernel will check for sufficient available memory to be used by the process, and if sufficient memory is available, the memory request is allowed; otherwise, the memory request fails and the error is returned to the application process.
1, which means that the kernel allows all physical memory to be allocated regardless of the current memory state.
2, which indicates that the kernel allows allocating more memory than the sum of all physical memory and swap space
5. Modifying a Redis configuration file
A) cd/etc
b) VI redis.conf
c) Modify Daemonize Yes---to enable the process to run in the background
6. Start Redis
A) Cd/usr/local/bin
b)./redis-server/etc/redis.conf
7. Check whether the start is successful
A) ps-ef | grep Redis
-----------------------configuration file Parameters-----------------------
1. Redis is not running as a daemon by default and can be modified by this configuration item, enabling the daemon with Yes
Daemonize No
2. When Redis is running as a daemon, Redis writes the PID to the/var/run/redis.pid file by default and can be specified by pidfile
Pidfile/var/run/redis.pid
3. Specify the Redis listening port, the default port is 6379, the author in his own article blog post explains why 6379 as the default port, because 6379 Merz the corresponding number on the phone keypad, and Merz from Italy showgirl Alessia Merz name
Port 6379
4. The host address of the binding
Bind 127.0.0.1
5. If the client closes the connection after a long period of inactivity, if it is specified as 0, the function is turned off
Timeout 300
6. Specify logging level, Redis supports four levels in total: Debug, verbose, notice, warning, default is verbose
LogLevel verbose
7. Logging mode, default to standard output, if Redis is configured to run as a daemon, and here is configured as a log record as standard output, the log will be sent to/dev/null
LogFile stdout
8. Set the number of databases, the default database is 0, you can use the Select <dbid> command to specify the database ID on the connection
Databases 16
9. Specify how many times the update operation will synchronize the data to the data file and can be combined with multiple conditions
Save <seconds> <changes>
There are three conditions available in the Redis default configuration file:
Save 900 1
Save 300 10
Save 60 10000
Represents 1 changes in 900 seconds (15 minutes), 5 changes in 300 seconds (10 minutes), and 60 changes in 10,000 seconds.
10. Specify whether to compress the data when storing to the local database, the default is Yes,redis with LZF compression, if you want to save CPU time, you can turn off this option, but it will cause the database file to become huge
Rdbcompression Yes
11. Specify the local database file name, the default value is Dump.rdb
Dbfilename Dump.rdb
12. Specify the local database to hold the directory
Dir./
13. Set the IP address and port of the master service when this machine is a Slav service, and it will automatically synchronize data from master when Redis boots
Slaveof <masterip> <masterport>
14. When the master service is password protected, the Slav service connects the password of master
Masterauth <master-password>
15. Set up the Redis connection password, if the connection password is configured, the client will need to provide the password via auth <password> command when connecting to Redis, turn off by default
Requirepass foobared
16. Set the maximum number of client connections at the same time, the default is unlimited, Redis can open the number of client connections for the Redis process can open the maximum number of file descriptors, if set maxclients 0, indicating no restrictions. When the number of client connections reaches the limit, Redis closes the new connection and returns the max number of clients reached error message to the client
MaxClients 128
17. Specify the maximum Redis memory limit, Redis will load data into memory when it is started, Redis will try to clear expired or expiring key first, when this method processing, still reach the maximum memory setting, will no longer write operation, but still can read operation. Redis new VM mechanism will store key memory, value will be stored in swap area
MaxMemory <bytes>
18. Specifies whether logging occurs after each update operation, which, by default, writes data to disk asynchronously and, if not turned on, may result in data loss over a period of time when power is lost. Because the Redis itself synchronizes data files in sync with the save conditions above, some data will only exist in memory for a period of time. Default is No
AppendOnly No
19. Specify the update log file name, default to Appendonly.aof
Appendfilename appendonly.aof
20. Specify the update log condition, a total of 3 optional values:
No: Indicates that the data cache of the operating system is synchronized to disk (fast)
Always: Represents a manual call to Fsync () to write data to disk (slow, secure) after each update operation
Everysec: Indicates synchronization once per second (trade-offs, default values)
Appendfsync everysec
21. Specify whether to enable the virtual memory mechanism, the default value is no, a simple introduction, the VM mechanism to store data paging, by Redis will be less accessible pages, such as cold data swap to disk, Access to multiple pages is automatically swapped out into memory by the disk (in a later article I will carefully analyze the Redis VM mechanism)
Vm-enabled No
22. Virtual memory file path, default value is/tmp/redis.swap, cannot be shared by multiple Redis instances
Vm-swap-file/tmp/redis.swap
23. Store all data greater than vm-max-memory in virtual memory, regardless of the vm-max-memory settings, all index data is memory stored (REDIS index data is keys), that is, when the vm-max-memory is set to 0, In fact, all value is present on disk. The default value is 0
Vm-max-memory 0
The Redis swap file is divided into a number of page, an object can be saved on more than one page, but a page can not be shared by multiple objects, Vm-page-size is based on the size of the stored data to set, the author suggests that if you store many small objects, The page size is best set to 32 or 64bytes, and if you store large objects, you can use a larger page, and if you are unsure, use the default values
Vm-page-size 32
25. Set the number of pages in the swap file, since the page table (a bitmap that indicates that the page is idle or used) is in memory and consumes 1byte of memory per 8 pages on disk.
Vm-pages 134217728
26. Set the number of threads to access swap files, preferably do not exceed the machine's core number, if set to 0, then all the swap file operation is serial, may cause a relatively long delay. The default value is 4
Vm-max-threads 4
27. Set when replying to the client, whether to merge the smaller package into one package send, the default is to turn on
Glueoutputbuf Yes
28. Specifies that a special hashing algorithm is used when more than a certain number or maximum element exceeds a critical value
Hash-max-zipmap-entries 64
Hash-max-zipmap-value 512
29. Specify whether to activate the reset hash, which is on by default (described later in the introduction of the Redis hashing algorithm)
activerehashing Yes
30. Specify other profiles that can use the same configuration file across multiple Redis instances on the same host, while each instance has its own specific configuration file
Include/path/to/local.conf
Day 45th: Introduction to Redis Installation