b/s: web program based on browser and server architecture
c/s: QQ SVN client + server
Simple text line-based protocol:
redis
memcache
Difference:
both store data, memcache saves it directly to the memory, redis saves it to the memory, and saves it to the hard disk after closing. Memcache restarts the computer , shutting down the service will cause data loss
(1) Save it in the memory
(2) Restart the computer, restart the service and all data will disappear
(3) LRU algorithm, based on the recently used variables, will store the data for a long time Delete unused variables
How PHP operates memcache
1. PHP loads the extension php_memcache.dll extension
Serialization
Deserialization
memcache can be saved Data: string, numeric value, array, object
When we get the object saved in memcache, we need to provide the definition of this class, otherwise, it will prompt that we don’t know which class of object it is
memcahe and redis: redis You can also save hash, data structure
2, memcached client operation
C/S connects to the server through the client
Add php_memcache.dll, but we don’t have it Permission to modify php configuration file
But you still want to use memory memcache
You can also use client operation
Through socket technology,
mysql query
Sort the query in English
Chinese --- --sphinx Chinese search engine
Close memcache extension
Use socket technology to complete PHP's CRUD operation on memcache
DLL-encapsulated function class library, through which memory space can be opened and data can be saved
Is it possible? Is the function written by myself the same as the function encapsulated by dll?
The idea is to convert the class library developed in C language in dll into PHP language
A lively Lei Feng in the Internet world shared the PHP class file
If there is a notice level error, modify it php error_reporting + E_ALL+NOTICE
Memcache life cycle:
Restarting memcached and restarting the operating system will cause all data to disappear. In addition, after the content capacity reaches the specified value, unused caches are automatically deleted based on the LRU (Least Recently Used) algorithm.
If expire is set to 0, it means it will never expire until the machine is restarted or the service is restarted
There is no need to blame it if you want to.
Save the session data to memcache
The session data is by default , saved in the file file
, but we can modify the php configuration to save it elsewhere
1, let memcache handle the session
2,
but How to get the session variable, it is no longer the name attribute, but saved through session_id
session_id
When the browser accesses the server, the server assigns the session_id to the browser and then finds the corresponding value through session_id
If sessaion saves objects, the tired information will be lost when obtained
But there are still questions:
What if you don’t have permission to modify the php configuration?
ini_set() can set some php configurations in the php file
Security issue:
Now anyone can access my memcache
Solution:
Firewall