Home >PHP Framework >Workerman >How to use Cassandra for data storage in Workerman
How to use Cassandra for data storage in Workerman
In today's software development, different data storage methods and engines are widely used. Cassandra, as a high-availability, distributed NoSQL database, plays an important role in the field of big data. This article will introduce how to use Cassandra for data storage in Workerman and provide relevant code examples.
Before we start using Cassandra, we need to install the Cassandra PHP extension. Execute the following command in the terminal to install:
sudo apt-get install libuv-dev libssl-dev libcurl4-openssl-dev libsasl2-dev pecl install cassandra
After the installation is complete, you also need to add the following line to the php.ini file:
extension=cassandra.so
Restart the PHP web server for the changes to take effect.
Next, we need to configure the Cassandra connection information for use in Workerman. Create a new PHP file named cassandra.php and add the following content:
<?php require 'vendor/autoload.php'; use CassandraCluster; use CassandraSimpleStatement; $cluster = Cluster::build() ->withContactPoints('127.0.0.1') // Cassandra节点IP地址 ->withPort(9042) // Cassandra端口号 ->withDefaultConsistency(1) ->build(); $session = $cluster->connect('mykeyspace'); // 替换为你自己的keyspace名称 function execute_query($query) { global $session; $result = $session->execute(new SimpleStatement($query)); return $result; }
In this code, we use the Cassandra PHP driver to establish a connection to the Cassandra database and define an execute_query function , used to execute CQL query statements.
Next, we will show how to use Cassandra in Workerman for data storage. First, we need to introduce Cassandra connection configuration in the Workerman project. Create a new PHP file, name it worker.php, and add the following content:
<?php require_once 'cassandra.php'; use WorkermanWorker; use WorkermanProtocolsHttpResponse; $http_worker = new Worker('http://0.0.0.0:8000'); $http_worker->onMessage = function ($connection, $request) { $path = $request->path(); $result = ''; if ($path == '/save') { $name = $_POST['name']; $email = $_POST['email']; $query = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; execute_query($query); $result = 'Data saved successfully'; } $response = new Response(200, [], $result); $connection->send($response); }; Worker::runAll();
In this code, we create an Http Worker and define the onMessage callback function to handle HTTP requests. If the requested path is /save, we get the name and email from the POST parameters and insert them into the Cassandra database.
Now that we have completed the configuration of the Cassandra connection and Workerman, we can start the Workerman server. Execute the following command in the terminal:
php worker.php start
The server will start running at this time and listen on port 8000.
Enter the following URL in the browser to test:
http://localhost:8000/save
Add name and email to the POST parameters and click to send the request. If everything is OK, you will receive a response indicating that the data was saved successfully.
Summary
This article introduces how to use Cassandra for data storage in Workerman. By installing the Cassandra PHP extension, configuring the Cassandra connection information, and writing the corresponding code in Workerman, we can easily interact with the Cassandra database and implement the data storage function. I hope this article can provide you with some help when using Workerman and Cassandra.
The above is the detailed content of How to use Cassandra for data storage in Workerman. For more information, please follow other related articles on the PHP Chinese website!