国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home Database Redis How to correctly set the configuration parameters of mongodb and redis development environment and production environment

How to correctly set the configuration parameters of mongodb and redis development environment and production environment

Jun 03, 2023 pm 08:04 PM
redis mongodb

When 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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to limit user resources in Linux? How to configure ulimit? How to limit user resources in Linux? How to configure ulimit? May 29, 2025 pm 11:09 PM

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

Various ways to update documents in MongoDB collections Various ways to update documents in MongoDB collections Jun 04, 2025 pm 10:30 PM

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.

Steps and examples for building a dynamic PHP website with PhpStudy Steps and examples for building a dynamic PHP website with PhpStudy May 16, 2025 pm 07:54 PM

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 Purpose: Flexible Data Storage and Management MongoDB's Purpose: Flexible Data Storage and Management May 09, 2025 am 12:20 AM

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.

When Should I Use Redis Instead of a Traditional Database? When Should I Use Redis Instead of a Traditional Database? May 13, 2025 pm 04:01 PM

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

How to view all databases in MongoDB How to view all databases in MongoDB Jun 04, 2025 pm 10:42 PM

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 Page Cache Policy Laravel Page Cache Policy May 29, 2025 pm 09:15 PM

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.

What are the Java middleware technologies? Comparative analysis of common middleware technologies What are the Java middleware technologies? Comparative analysis of common middleware technologies May 20, 2025 pm 08:06 PM

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.

See all articles