


How to correctly set the configuration parameters of mongodb and redis development environment and production environment
Jun 03, 2023 pm 08:04 PMWhen we write code, we usually develop it on our own computer first, and then deploy the code to the server. If a piece of code involves reading and writing a database, or accessing some other online service interfaces, then during development, in order not to affect the online environment, we usually separate the database in the test environment and the database in the online environment.
For example, our program needs to access MongoDB and Redis, so in the code, we may write like this:
import?pymongo import?redis handler?=?pymongo.MongoClient('mongodb://username:password@127.0.0.1:27017').db.col client?=?redis.Redis(host='127.0.0.1',?port=6379,?password='xxxx')
When you want to deploy the program to the online environment, you manually change the MongoDB connection parameters and Redis connection parameters in the code to the parameters of the online environment. Then submit the code to Git, pull the latest code on the server and deploy it.
However, when you want to modify a new function and test it again, you need to modify these connection parameters to the parameters of the test environment and operate on your own computer. If you forget to modify and run directly, dirty data may be written to the online environment.
So, someone may use environment variables to control the parameters read, for example:
import?os import?redis import?pymongo if?os.getenv('env',?'prod'):??#?線上環(huán)境? ????MONGODB_URI?=?'mongodb://username:password@xx.xx.xx.xx:27017' ????REDIS_PARAMS?=?{'host':?'xx.xx.xx.xx',?'port':?6379,?'password':?'xxxx'} else:??#?測(cè)試環(huán)境 ????MONGODB_URI?=?'mongodb://username:password@127.0.0.1:27017' ????REDIS_PARAMS?=?{'host':?'127.0.0.1',?'port':?6379,?'password':?'xxxx'} handler?=?pymongo.MongoClient(MONGODB_URI).db.col client?=?redis.Redis(**REDIS_PARAMS)
In this way, you don’t need to manually modify the connection parameters of the database. Just set the environment variable env
of the online environment to prod
, and then the program will be deployed to the online environment. It automatically uses the parameters of the online database. As long as the environment variable env
is not prod
elsewhere, such as on your computer, or the environment variable simply does not exist, the parameters of the development environment will be automatically used.
Doing this does avoid problems caused by forgetting to modify parameters, but there is another problem: if other people also have access to this Git source, then they will know how to connect to the database in the online environment. They even manipulate data in the online environment without authorization, causing security risks or privacy leaks.
In order to be more secure, you can use a special file to store the configuration parameters, and the program reads the parameters from the file. The online environment file contains online parameters, and the development environment file contains development parameters. This configuration file is not uploaded to Git.
For example, we create a config.json file whose content is:
{ ????"MONGODB_URI":?"mongodb://username:password@127.0.0.1:27017", ????"REDIS_PARAMS":?{"host":?"127.0.0.1",?"port":?6379,?"password":?"xxxx"} }
Then our code is modified like this:
import?os import?json import?redis import?pymongo CONFIG_PATH?=?'/etc/config/config.json' if?not?os.path.exists(CONFIG_PATH): ????print('配置文件不存在,自動(dòng)使用測(cè)試環(huán)境參數(shù)!') ????MONGODB_URI?=?'mongodb://username:password@127.0.0.1:27017' ????REDIS_PARAMS?=?{'host':?'127.0.0.1',?'port':?6379,?'password':?'xxxx'} else: ????with?open(CONFIG_PATH,?encoding='utf-8')?as?f: ????????config?=?json.load(f) ????????MONGODB_URI?=?config['MONGODB_URI'] ????????REDIS_PARAMS?=?config["REDIS_PARAMS"] ???? handler?=?pymongo.MongoClient(MONGODB_URI).db.col client?=?redis.Redis(**REDIS_PARAMS)
The above is the detailed content of How to correctly set the configuration parameters of mongodb and redis development environment and production environment. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Linux system restricts user resources through the ulimit command to prevent excessive use of resources. 1.ulimit is a built-in shell command that can limit the number of file descriptors (-n), memory size (-v), thread count (-u), etc., which are divided into soft limit (current effective value) and hard limit (maximum upper limit). 2. Use the ulimit command directly for temporary modification, such as ulimit-n2048, but it is only valid for the current session. 3. For permanent effect, you need to modify /etc/security/limits.conf and PAM configuration files, and add sessionrequiredpam_limits.so. 4. The systemd service needs to set Lim in the unit file

The methods for updating documents in MongoDB include: 1. Use updateOne and updateMany methods to perform basic updates; 2. Use operators such as $set, $inc, and $push to perform advanced updates. With these methods and operators, you can efficiently manage and update data in MongoDB.

The steps to build a dynamic PHP website using PhpStudy include: 1. Install PhpStudy and start the service; 2. Configure the website root directory and database connection; 3. Write PHP scripts to generate dynamic content; 4. Debug and optimize website performance. Through these steps, you can build a fully functional dynamic PHP website from scratch.

MongoDB's flexibility is reflected in: 1) able to store data in any structure, 2) use BSON format, and 3) support complex query and aggregation operations. This flexibility makes it perform well when dealing with variable data structures and is a powerful tool for modern application development.

UseRedisinsteadofatraditionaldatabasewhenyourapplicationrequiresspeedandreal-timedataprocessing,suchasforcaching,sessionmanagement,orreal-timeanalytics.Redisexcelsin:1)Caching,reducingloadonprimarydatabases;2)Sessionmanagement,simplifyingdatahandling

The way to view all databases in MongoDB is to enter the command "showdbs". 1. This command only displays non-empty databases. 2. You can switch the database through the "use" command and insert data to make it display. 3. Pay attention to internal databases such as "local" and "config". 4. When using the driver, you need to use the "listDatabases()" method to obtain detailed information. 5. The "db.stats()" command can view detailed database statistics.

Laravel's page caching strategy can significantly improve website performance. 1) Use cache helper functions to implement page caching, such as the Cache::remember method. 2) Select the appropriate cache backend, such as Redis. 3) Pay attention to data consistency issues, and you can use fine-grained caches or event listeners to clear the cache. 4) Further optimization is combined with routing cache, view cache and cache tags. By rationally applying these strategies, website performance can be effectively improved.

There are many types of Java middleware technologies, mainly including message queues, caching, load balancing, application servers and distributed service frameworks. 1. Message queue middleware such as ApacheKafka and RabbitMQ are suitable for asynchronous communication and data transmission. 2. Cache middleware such as Redis and Memcached are used to improve data access speed. 3. Load balancing middleware such as Nginx and HAProxy are used to distribute network requests. 4. Application server middleware such as Tomcat and Jetty are used to deploy and manage JavaWeb applications. 5. Distributed service frameworks such as Dubbo and SpringCloud are used to build microservice architectures. When selecting middleware, you need to consider performance and scalability.
