• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

✅ بحث و گفتگو بین وبمسترها

ALIREZA567

Registered User
تاریخ عضویت
1 سپتامبر 2012
نوشته‌ها
862
لایک‌ها
656
برای کش استفاده از Redis رو به جای Memcached پیشنهاد میکنم ، اگر خواستی بگو مزایای Redis نسبت به Memcached رو بهت بگم.


همونطور که ذوستا گفتن ، باید WildCard رو فعال کنی .
بعد هم میتونی تو htaccess با استفاده از rewriterule آدرسی که به این صورت domain.com/user هست رو به این صورت نشون بدی user.domain.com

و هم میتونی سمت سرور ساب دامین رو دریافت کنی و محتوا رو بر اساس اون ساب دامین فیلتر کنی.
برای مثال تو php برای دریافت ساب دامین میتونی به این صورت :
PHP:
$host = explode ('.', $_SERVER ['HTTP_HOST']);
$subdomain = $host [0];

یا تو Node.js به این صورت:

کد:
var host= req.headers.host,
   subDomain = host.split('.');
subDomain = subDomain[0].split("-").join(" ");
wildcard رو از کجا باید فعال کرد؟
 

aalireza439

کاربر فعال وب مسترها
کاربر فعال
تاریخ عضویت
5 ژانویه 2009
نوشته‌ها
3,563
لایک‌ها
7,670
محل سکونت
Golestan
nodejs چه قدر به ازای هر developer بت پول میده اینقدر تبلیغشا میکنی آخه ؟ :D
پورسانتی نیست ، حقوق ماهیانه میدن :android32:

ولی خودمونیم ، Node.js خیلی خوبه ، البته من طرفدار متعصب نیستم ، میگم Node.js به درد هر کاری نمیخوره و بهتره سایر گزینه ها رو هم در نظر داشت.
برای مثال Node.js برای کارهایی که نیاز به محاسبات زیادی داره بهترین گزینه نیست .
یا برای کاراهایی که نیاز به تعداد کانکشن همزمان بالا هست ، Node.js تنها فاتح این قافله نیست و زبانی مثل erlang یک فاک قشنگ برای Node میفرسته :android06:

wildcard رو از کجا باید فعال کرد؟
یک A رکورد به این صورت باید تعریف کنی domain.com.* به آی پی سرورت
کد:
*.yourdomain.com  IN A 1.1.12.1
 

siavashx

کاربر فعال کسب درآمد از اینترنت
کاربر فعال
تاریخ عضویت
2 مارس 2014
نوشته‌ها
3,759
لایک‌ها
6,667
محل سکونت
خورآسان
جدیدا هر ضربه ای میخورم از اشناها میخورم:general509::confused:
@ali-tahmasb
دست از سر سایت من بردار سایت به فنا رفت :general710:
:general710:
 

microbit

Registered User
تاریخ عضویت
16 آگوست 2012
نوشته‌ها
1,806
لایک‌ها
544
سن
43
محل سکونت
استان گیلان
اساتید گرام
بنده یه آدرس دارم شبیه این 123.123.123.123:7070
میخوام براش یه ادرس قابل خوندن بسازم مثلا بشه این: cam.domain.com
از چه راهی باید اینکارو انجام بدم که دیگه جلوی ادرس ساخته شده نیاز به وارد کردن پورت 7070 نباشه!؟
 

007saeed

کاربر فعال کسب درآمد از اینترنت
کاربر فعال
تاریخ عضویت
21 مارس 2014
نوشته‌ها
2,902
لایک‌ها
3,202
سن
32
محل سکونت
بجنورد
همین الان قصد کردم برم توی هاست
خدایا خودت به خیر بگذرون :))
 

aalireza439

کاربر فعال وب مسترها
کاربر فعال
تاریخ عضویت
5 ژانویه 2009
نوشته‌ها
3,563
لایک‌ها
7,670
محل سکونت
Golestan
دوستان جایی سراغ دارید دیتابیس mongodb رو با جزئیات توضیح بده ؟
متوجه نمیشم چطور میشه ریلیشن زد و موقع خوندن اطلاعات چه دستوری باید بنویسیم.
مثلا برای کاربر و مطلب MySQL خیلی راحت 2 تا جدول users و entries میسازیم id کاربر رو وصل میکنیم به مطلب. با mongodb چطور میشه اینکارو کرد ؟
و یه سوال دیگه اینکه ابزار مناسب برای طراحی mongodb داریم ؟ یعنی بشه یه ساختار کلی برای دیتابیس تعریف کرد.
@aalireza439
@mohsenshahbazi
و بقیه دوستان


برای سی پنل یه سابدومین بساز به جای اسمش * بزن، این حالت *.domain.com
اول از همه تو MongoDB الگوی داده ها خیلی منعطف هست و کالکشن ها ، داکیومنت ها رو مجبور نمیکن که حتما یک ساختار ثابت داشته باشن ، این یعنی اینکه هر وقت که دلت بخواهد میتونی به اون داکیومنت ات یک فیلد جدید اضافه کنی و تغییرش بدی !

دوم هم اینکه تو MongoBD دیگه از چیزی هایی مثل Join یا Foreign Key خبری نیست (دلیل اش این هست استفاده از Join زمانی که یک خوشه (cluster) بزرگی از سرورها زمان زیادی میبره و به هیچ وجود روش بهینه ای نیست )و باید شما برخی از دیدها تون تو زمینه database denormalization رو تغییر بدید.
همونطور میدونید normalization در دیتابس ها به معنی پروسه سازماندهی داده ها تو برای به حداقل رسوندن افزودگی داده ها و وابستگی ها است ، مثلا ما تو دیتابس های Sql میایم جدول های مختلف با ID منحصربفرد و کلید های خارجی تعریف میکنیم ، همه این کارها برای اینکه افزودگی داده ها رو کاهش بدیم.
از اون طرف denormalization تاکید اصلی اش روی افزایش کارایی سرعت خوندن داده هاست (حالا خیلی این بحث رو ادامه نمیدم ، به خاطر اینکه اگر بخواهم ادامه بدم باید استراتژیها normalization و denormalization تو دیتابس های slq و Nosql رو با هم مقایسه کنیم ، بحث اش طولانی هست و کمی گیج کننده ، البته برای کار با MongoDB نیاز نیست که این موارد رو به طور کامل درک کنید ، فقط در مواردی که با داده های بالا کار کنید ضروری هست)

حالا برای ایجاد رابطه تو MongoDB دو روش وجود داره Embedded و Referenced

تو روش Embedded ما میام اطلاعات مربوط رو داخل همون داکیومنت ارجاعی مون میزاریم به این صورت :
تو این مدل آدرس و کاربر رو تو یک داکیومنت تعریف کردیم
کد:
{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address": [
      {
         "building": "22 A, Indiana Apt",
         "pincode": 123456,
         "city": "Los Angeles",
         "state": "California"
      },
      {
         "building": "170 A, Acropolis Apt",
         "pincode": 456789,
         "city": "Chicago",
         "state": "Illinois"
      }]
}
خوبی این روش اینکه تمام اطلاعات تو یک داکیومنت ذخیره میشه و دریافت اطلاعات آسون تره ، از معایب اش هم اینکه تو داده های زیاد سرعت خوندن و نوشتن رو پایین میاره (البته سرعت خوندن کاهش پیدا نمیکنه ، اما سرعت نوشتن بیشتر میشه ، بعلاوه اینکه افزودگی هم تو دیتابس افزایش پیدا میکنه)
این هم نمونه کوئری برای این مدل:
کد:
db.users.findOne({"name":"Tom Benzamin"},{"address":1})


تو روش Referenced ، میاییم برای کاربر و آدرس یک کالکشن جدا تعریف میکنیم
به این صورت که من میا یک فیلد address_ids برای کالکشن کاربر تعریف میکنیم و آدرس ها رو بهش ارجاع میدیم (اینطوری افزودگی داده ها هم کمنر میشه)

کد:
{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address_ids": [
      ObjectId("52ffc4a5d85242602e000000"),
      ObjectId("52ffc4a5d85242602e000001")
   ]
}

تو روش طراحی الگوی اینکه چی رو به چی ارجاع بدید دیگه دست خودتونه .

نمونه کوئری با یک نام و آدرس مشخص
کد:
db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})

این رو هم درایورهایی مثل Mongoose هم روش های مشابه Join رو اراده مید http://mongoosejs.com/docs/populate.html

این رو یادم رفت بگم ، کالکشن ها معادل همون جدول ها تو دیتابس های RDBMS هست
داکیومنت ها معادل همون رکورد های داد.
 
Last edited:

ehsanina

Registered User
تاریخ عضویت
9 جولای 2013
نوشته‌ها
902
لایک‌ها
335
دوستان کی تو وب هاستینگ تاک میتونه در قسمت فروش تاپیک بزنه ؟
 

ali-tahmasb

Registered User
تاریخ عضویت
24 مارس 2013
نوشته‌ها
1,724
لایک‌ها
1,856
محل سکونت
نصف جهان

aalireza439

کاربر فعال وب مسترها
کاربر فعال
تاریخ عضویت
5 ژانویه 2009
نوشته‌ها
3,563
لایک‌ها
7,670
محل سکونت
Golestan
به قول شاعر نیکیُ پرسش؟ :general707:
حالا من یک چی گفنم :android06:

اول اینو بگم تفاوت های این دوتا بیشتر تو پروژه های بزرگ نمود پیدا میکنه ، اما تو پروژه های کوچیکتر هم اونقدر تفاوت وجود داره که مجاب تون کنه بخواهید ازش استفاده کنید.
سرتیتر های مقایسه رو از یک سایت دیگه گرفتم (گفتم که بدونید!)

نصب : برای من که فرق نداره ، روی این مورد بحثی ندارم ، البته Redis آسون تره :دی

مصرف حافظه :
برای موارد ساده memcached کارامد تر هست ، اما برای موارد پیچیده تر Redis بهتره ، هر چند اگر از Redis hashes استفاده کنید ، Redis بهتون کارایی بهتری میده.

پایداری داده :
تو این مورد memcached وقتی سیستم ریبوت بشه ، داده ها پاک میشه و بازسازی داده کش شده خودش یک پردازش اضافی هست ، از اون طرف Redis به صورت پیشفرض داده ها هر 2 ثانیه روی
دیسک سینک میکنه ، اینطور داده ها همیشه در دسترس هست!

تکرار داده ها (Replication)
memcached از این مورد پشتبانی نمیکنه ، در صورتی که Redis از تکرار به صورت master-slave پشتیبانی میکنه ، به این صورت که Redis یک کپی از Master رو روی هر Slave ایجاد میکنه
و شما هر چندتا که بخواهید میتونید Slave داشته باشید ، این مورد برای زمانی که اپلیکیشن تون رو برای افزایش کارایی روی چند سرور اجرا میکنید بعد با استفاده از یک LoadBalancer کاربرها رو روی
سرور های متفاوت میفرستید خیلی مفید ، مثلا فرض کنید شما میاید روی سایتتون برای هر کاربری که وارد میشه یک سشن ایجاد میکنید ، از چند سرور همزمان هم استفاده میکنید ، حالا اگه از memcached
استفاده کنید ، کاربر هر بار که به یک سرور جدید بره باید دوباره وارد بشه ، اما Redis چون تمام Slave ها بروز میشن ، این مشکل نداره و اون سشن برای سرورهای دیگه هم هست

نوع ذخیره سازی :
Memcached متغیرها رو روی حافظه رم ذخیره میکنه ، موقع خوندنشون هم مستقیم از حافظه میگیره و هیچ دیتابسی در کار نیست ، اما Redis مثل یک دیتابس که تو حافظه قرار داره ، دستور های خوندن و نوشتن
رو روی دیتابس اجرا میشه و اطلاعت رو تو حافظه برگشت میده ، بعضی توسعه دهنده ها از Redis برای مواردی مثل اپلیکیشن های آمارگیر بلادرنگ ازش استفاده میکنن.

سرعت خوندن نوشتن :
Memcached سایت ها با ترافیک بالا رو به خوبی پشتیبانی میکنه و می تونه درخواست های زیادی رو دریافت کنه و تو زمان کمی بهشون پاسخ بده ، Redis هم به خوبی با سایت های ترافیک بالا کار میکنه ،
و همچنین درخواست های نوشتن خیلی زیاد رو به خوبی پشتیبانی میکنه.

ساختار داده :
Memcached از رشته ها و نوع عدد صحیح برای ساختمان داده اش استفاده میکنه ، هر چیزی که شما بخواهید ذخیره کنید باید یکی از این دو مورد باشه ، در مقایسه Redis تنها از 2 نوع رشته و عدد صحیح
پشیبانی نمی کنه ، موارد مثل لیست ها و مجموعه ها و.. پشتیبانی میکنه.

طول Key:
همونطور که میدونید داده ها تو هر دو Memcached و Redis به صورت key-value (کلید : مقدار) ذخیره میشه ، حداکثر طول کلید در Memcached مقدار 250 bytes هست برای Redis مقدار2GB


نتیجه گیری :
اگر یک سیستم کش با ساختمان داده پیشرفته با قابلیت ذخیره تو دیسک میخواهید ، Redis گزینه مد نظرتون هست ، اما اگر دنبال یک سیستم کش ساده و سریع هستید Memcached رو باید انتخاب کنید.
 

siavashx

کاربر فعال کسب درآمد از اینترنت
کاربر فعال
تاریخ عضویت
2 مارس 2014
نوشته‌ها
3,759
لایک‌ها
6,667
محل سکونت
خورآسان

microbit

Registered User
تاریخ عضویت
16 آگوست 2012
نوشته‌ها
1,806
لایک‌ها
544
سن
43
محل سکونت
استان گیلان

ali-tahmasb

Registered User
تاریخ عضویت
24 مارس 2013
نوشته‌ها
1,724
لایک‌ها
1,856
محل سکونت
نصف جهان

mg6

Registered User
تاریخ عضویت
14 ژانویه 2012
نوشته‌ها
2,161
لایک‌ها
1,627
محل سکونت
اهواز
حالا من یک چی گفنم :android06:

اول اینو بگم تفاوت های این دوتا بیشتر تو پروژه های بزرگ نمود پیدا میکنه ، اما تو پروژه های کوچیکتر هم اونقدر تفاوت وجود داره که مجاب تون کنه بخواهید ازش استفاده کنید.
سرتیتر های مقایسه رو از یک سایت دیگه گرفتم (گفتم که بدونید!)

نصب : برای من که فرق نداره ، روی این مورد بحثی ندارم ، البته Redis آسون تره :دی

مصرف حافظه :
برای موارد ساده memcached کارامد تر هست ، اما برای موارد پیچیده تر Redis بهتره ، هر چند اگر از Redis hashes استفاده کنید ، Redis بهتون کارایی بهتری میده.

پایداری داده :
تو این مورد memcached وقتی سیستم ریبوت بشه ، داده ها پاک میشه و بازسازی داده کش شده خودش یک پردازش اضافی هست ، از اون طرف Redis به صورت پیشفرض داده ها هر 2 ثانیه روی
دیسک سینک میکنه ، اینطور داده ها همیشه در دسترس هست!

تکرار داده ها (Replication)
memcached از این مورد پشتبانی نمیکنه ، در صورتی که Redis از تکرار به صورت master-slave پشتیبانی میکنه ، به این صورت که Redis یک کپی از Master رو روی هر Slave ایجاد میکنه
و شما هر چندتا که بخواهید میتونید Slave داشته باشید ، این مورد برای زمانی که اپلیکیشن تون رو برای افزایش کارایی روی چند سرور اجرا میکنید بعد با استفاده از یک LoadBalancer کاربرها رو روی
سرور های متفاوت میفرستید خیلی مفید ، مثلا فرض کنید شما میاید روی سایتتون برای هر کاربری که وارد میشه یک سشن ایجاد میکنید ، از چند سرور همزمان هم استفاده میکنید ، حالا اگه از memcached
استفاده کنید ، کاربر هر بار که به یک سرور جدید بره باید دوباره وارد بشه ، اما Redis چون تمام Slave ها بروز میشن ، این مشکل نداره و اون سشن برای سرورهای دیگه هم هست

نوع ذخیره سازی :
Memcached متغیرها رو روی حافظه رم ذخیره میکنه ، موقع خوندنشون هم مستقیم از حافظه میگیره و هیچ دیتابسی در کار نیست ، اما Redis مثل یک دیتابس که تو حافظه قرار داره ، دستور های خوندن و نوشتن
رو روی دیتابس اجرا میشه و اطلاعت رو تو حافظه برگشت میده ، بعضی توسعه دهنده ها از Redis برای مواردی مثل اپلیکیشن های آمارگیر بلادرنگ ازش استفاده میکنن.

سرعت خوندن نوشتن :
Memcached سایت ها با ترافیک بالا رو به خوبی پشتیبانی میکنه و می تونه درخواست های زیادی رو دریافت کنه و تو زمان کمی بهشون پاسخ بده ، Redis هم به خوبی با سایت های ترافیک بالا کار میکنه ،
و همچنین درخواست های نوشتن خیلی زیاد رو به خوبی پشتیبانی میکنه.

ساختار داده :
Memcached از رشته ها و نوع عدد صحیح برای ساختمان داده اش استفاده میکنه ، هر چیزی که شما بخواهید ذخیره کنید باید یکی از این دو مورد باشه ، در مقایسه Redis تنها از 2 نوع رشته و عدد صحیح
پشیبانی نمی کنه ، موارد مثل لیست ها و مجموعه ها و.. پشتیبانی میکنه.

طول Key:
همونطور که میدونید داده ها تو هر دو Memcached و Redis به صورت key-value (کلید : مقدار) ذخیره میشه ، حداکثر طول کلید در Memcached مقدار 250 bytes هست برای Redis مقدار2GB


نتیجه گیری :
اگر یک سیستم کش با ساختمان داده پیشرفته با قابلیت ذخیره تو دیسک میخواهید ، Redis گزینه مد نظرتون هست ، اما اگر دنبال یک سیستم کش ساده و سریع هستید Memcached رو باید انتخاب کنید.
دستت درد نگیره توضیحاتت عالی بود :general707:
اگر درست متوجه شده باشم پس برای سرور هایی که SSD داشته باشن یا درایوهارو RAID0 بسته باشن Redis می تونه کارایی خیلی بهتری داشته باشه
سرورهای که هارددیسک معمولی دارند یا RAID1 بسته شدن فکر کنم با مشکل کمبود سرعت خوندن و نوشتن مواجه بشن توی Redis
memchahed رو که از unix socket اجرا کردم حدود 20% سرعت پاسخگوییش بهتر شده
وقتی اومدم روی https فکر می کردم سرعت کمتر بشه ولی با استفاده از nginx و SPDY و memcached , درنهایت defer کردن js ها از قبل از https هم نتیجه بهتری گرفتم :general709:
ی سری کارای دیگه ام باید انجام بدم به سرعت لود 0- برسم:general707: :general410:
 

farshad-fr4

Registered User
تاریخ عضویت
28 دسامبر 2012
نوشته‌ها
2,037
لایک‌ها
743
محل سکونت
زمین
دوستان پی اچ پی کار

چجوری میتونم با پی اچ پی کار زیر رو انجام بدم.

من میخوام تو هاستم یه فایل پی اچ پی بزارم که یه فرم توش داره
توی فرم اسم دقیق یه فایل رو میزنم و میخوام اون فایلی که اسمش رو وارد کردم از هاست پاک بشه

باید چیکار کنم؟ (کد پاک کردن فایل چی هست؟)
 

MR-S

Registered User
تاریخ عضویت
22 ژانویه 2013
نوشته‌ها
4,438
لایک‌ها
7,680
دوستان پی اچ پی کار

چجوری میتونم با پی اچ پی کار زیر رو انجام بدم.

من میخوام تو هاستم یه فایل پی اچ پی بزارم که یه فرم توش داره
توی فرم اسم دقیق یه فایل رو میزنم و میخوام اون فایلی که اسمش رو وارد کردم از هاست پاک بشه

باید چیکار کنم؟ (کد پاک کردن فایل چی هست؟)
این سوالات رو اگه تو گوگل سرچ کنی خیلی راحت به جواب میرسی .
مثلا اگه با FTP کانکت میشی :
https://www.google.com/?gws_rd=ssl#q=Deletes+a+file+on+the+FTP+server+php
کلی مطلب هست.
 

farshad-fr4

Registered User
تاریخ عضویت
28 دسامبر 2012
نوشته‌ها
2,037
لایک‌ها
743
محل سکونت
زمین
این سوالات رو اگه تو گوگل سرچ کنی خیلی راحت به جواب میرسی .
مثلا اگه با FTP کانکت میشی :
https://www.google.com/?gws_rd=ssl#q=Deletes+a+file+on+the+FTP+server+php
کلی مطلب هست.
مر30 :)
همیشه تو گوگل فارسی سرچ میکنم و چیزی نمیاره درست حسابی برای همین اینجا میپرسم (نمیدونم چرا انگلیسی رو سرچ نمیکنم :general208:)
 

MR-S

Registered User
تاریخ عضویت
22 ژانویه 2013
نوشته‌ها
4,438
لایک‌ها
7,680
مر30 :)
همیشه تو گوگل فارسی سرچ میکنم و چیزی نمیاره درست حسابی برای همین اینجا میپرسم (نمیدونم چرا انگلیسی رو سرچ نمیکنم :general208:)
این یعنی هنوز به وب فارسی امیدواری ، آفرین بر تو:D
 
بالا