What is Redis
redis is a nosql (not only sql not only sql) database, translated into Chinese it is called non-relational database.
1. What is nosql?
NoSQL generally refers to non-relational databases. NoSQL is Not-Only SQL, which can be a good supplement to relational databases. . With the rise of Internet web2.0 websites, non-relational databases have now become an extremely popular new field, and non-relational database products are developing very rapidly. The traditional relational database has been unable to cope with web2.0 websites, especially ultra-large-scale and highly concurrent SNS type web2.0 purely dynamic websites, exposing many insurmountable problems, such as:
1 , High performance - the need for high concurrent reading and writing of the database
Web2.0 websites need to generate dynamic pages and provide dynamic information in real time based on user personalized information, so it is basically impossible to use dynamic page static technology, so The concurrent load of the database is very high, often reaching tens of thousands of read and write requests per second. The relational database can barely withstand tens of thousands of SQL queries, but when it comes to tens of thousands of SQL write data requests, the hard disk IO can no longer bear it. In fact, for ordinary BBS websites, there is often a need for high concurrent write requests, such as real-time statistics of online user status of the website, recording the number of clicks on popular posts, vote counting, etc., so this is a quite common demand.
2. Huge Storage - the need for efficient storage and access of massive data
SNS websites like Facebook, twitter, and Friendfeed generate massive user dynamics every day, with Friendfeed as the For example, there are 250 million user updates in one month. For relational databases, performing SQL queries in a table with 250 million records is extremely inefficient or even intolerable. Another example is the user login system of large web sites, such as Tencent and Shanda, which often have hundreds of millions of accounts, and relational databases are also difficult to cope with.
3. High Scalability && High Availability-Requirements for high scalability and high availability of the database
In web-based architecture, the database is the most difficult to expand horizontally. When a As the number of users and visits to the application system increases day by day, your database cannot expand its performance and load capacity simply by adding more hardware and service nodes like web servers and app servers. For many websites that need to provide 24-hour uninterrupted services, it is very painful to upgrade and expand the database system, which often requires downtime maintenance and data migration. Why can't the database be expanded by continuously adding server nodes?
NoSQL databases were created to solve the challenges brought by large-scale data collections and multiple data types, especially big data application problems.
2. Four major categories of NoSQL databases
Key-Value storage database
Related products: Tokyo Cabinet/Tyrant, Redis , Voldemort, Berkeley DB Typical applications: Content caching, mainly used to handle high access loads of large amounts of data. Data model: A series of key-value pairs Advantages: Fast query Disadvantages: The stored data lacks structured column storage database
Related products: Cassandra, HBase, Riak Typical applications: Distributed file system Data model: Column-based Clustered storage stores the same column of data together. Advantages: fast search speed, strong scalability, and easier distributed expansion. Disadvantages: relatively limited functions.
Document database
Related products: CouchDB, MongoDB Typical applications: Web applications (similar to Key-Value, Value is structured) Data model: A series of key-value pairs Advantages: Data structure requirements are not strict Disadvantages: Query performance is not high, and there is a lack of unified query syntax
Graph (Graph) database
Related databases: Neo4J, InfoGrid, Infinite Graph Typical applications: Social network data model: Graph structure advantages: Use graph structure related algorithms. Disadvantages: The entire graph needs to be calculated to get the result, and it is not easy to implement a distributed cluster solution.
3. Redis Basics
Redis stores data in memory. Due to its fast content access speed, redis is widely used in Internet projects. Redis advantages: The access speed is fast. Officially, the reading speed will reach 300,000 times per second, and the writing speed will be around 100,000 times per second. The specific limitations are limited to the hardware.
Disadvantages: The persistence support is not good enough.
So redis is generally not used as the main database storage for data, and is generally used with traditional relational databases.
Redis is an open source high-performance key-value pair (key- value) database. It provides a variety of key-value data types to adapt to storage needs in different scenarios. The key-value data types supported by Redis so far are as follows:
String type Hash type List type Collection type
4. Application scenarios of redis
Cache (data query, short connection, news content, product content, etc.). (Most used) Session separation in distributed cluster architecture. Chat room's online friends list. Task queue. (Flash sale, rush sale, 12306, etc.) Application rankings. Website visit statistics. Data expiration processing (accurate to milliseconds)
The above is the detailed content of What type of database is redis?. For more information, please follow other related articles on the PHP Chinese website!