Redis در الکسیر نیاز هست ؟ و دقیقا چیست ؟

با درود خدمت دوستان من در خیلی از مطالب روبی یا در برخی از صحبت هایی که در گذشته داخل انجمن شده . اسم Redis رو شنیدم . در سایت اصلیش که فکر کنم این باشه
https://redis.io
هم یک توضیح کوتاه داده مطالعه کردم و فکر کنم اینچنین گفته که برخی از درخواست هارو کش می کنه و … و فکر کنم اطلاعات رو روی رم می یاره و دیگه از دیتابیس نمی خونه !! البته اگر بد متوجه نشده باشم .

۱ . حالا این https://redis.io در چه زمانی نیاز هست استفاده کنیم ؟ و دقیقا چیکار می کنه ؟
۲. در یکی از پست ها گفته شد که چون جن سرور هست نیازی به این نیست ؟ می خواستم بدونم این کار جن سرور رو انجام می ده ؟
۳. و آیا روی elixir در صورت نیاز پیاده سازی می شه ؟

در جادی تی‌وی ۱۰ در موردش صحبت شده.

1 پسندیده

تشکر از شما دوست عزیز ویدیو رو دیدم و بسیار عالی .

تا اینجا که ویدیو رو دیدم . همین کار در ویدیو رو می شه بجای ردیس داخل جن سرور ذخیره کرد که برای خود ارلنگ یا الکسیره . بازم نیاز به ردیس در الکسیر هست ؟

نیازی به redis لزوما نیست در الیکسیر
Redis فقط در memory نیست بلکه persistence هم داره
اگر genserver کافی نیست میتونیداز ETS و DETS , Mnesia
که دیتابیس های ارلنگ هستند استفاده کنید

2 پسندیده

درود خدمت دوست گرامی و استاد عزیز @samdvr

یک سوال تمامی این موارد برای دیتابیس هایی هست که می خواهیم سریعا رو رم نگهداری کنیم ؟ و در بک گراند اگر نیاز بود خوب ذخیره هم بکنیم مثل جن سرور ؟!!

یک سوال شما در کجا ها ازش استفاده می کنید جز چت و سرور های بازی !! مثلا منطقی هست که مثلا ۱۰ مطالب بسیار پر ترافیک یا برای مطلبی که تبلیغات گرفتیم ( و ترافیک بازه ای سنگینی داره ) اون ۱۰ تا رو بیاریم توی پروسز جن سرور ؟ مثلا!!

اصلا کاربر یک سایت که داره یک صفحه رو ارسال یا یک صفحه رو فراخوانی می کنه که سرعتش روی میلی ثانیه هست !! یا برخی مواقع فراخوانی از طرف میکروثانیه !! آیا اصلا این موارد منطقی هست ؟

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

نمونه همین ردیس . من همین مورد رو برای یک کار کوچیک البته نه کار بزرگ ( داخل swift ) می اومدم داخل یک کلاس ذخیره می کردم به این صورت :

import Foundation

class DashbordModel {
    var _title:String!
    var _type:String!
    
    
    var title:String {
        return _title
    }
    
    var type:String {
        return _type
    }
    
    init(title:String, type:String) {
        
        _title   = title
        _type    = type
    }
}

خوب !! تا اینجا می خواستم بگم می شه چند مثال واقعی بزنید در مورد استفاده از این دیتا استور ها یا هر ابزاری که تقریبا شبی به این موارد هست

1 پسندیده

ETS یه key value store شبیه Redis
و در ارلنگ برای Cache بیشتر استفاده میشه Mnesia اما بیشتر شبیه یه دیتابیس realtime و distributed هستش که جدول داره

من در کارهای خودم با الیکسیر برای cache یا از agent استفاده میکنم یا redis
Redis چندین ساختار داده داره که دربعضی برنامه ها کارآمدند مانند sorted set. hash , queue

3 پسندیده

سلام . برای فئونیکس منبع برای نسخه 1.3 چی هست ؟:cry::cry::cry:هرچقد میگردم چیزی نیس یاهم پولیه

درود منبع چی ؟
هرچی روی نسخه قبلی کار می کرده اینجا هم کار می کنه و مشکلی ندیدم تا حالا

1 پسندیده

تغییراتش زیاده دادا . مثلا پوشه ای ب اسم مدل نیس و context و…

عزیز دقیق یادم نیس ولی تو یه کتاب و دوسه تا وبلاگ خونده بودم که استفاده از ets و… رو اصلا توصیه نمیکردن دیروزم فک کنم تو داکیومنتای خود الکسیر خوندم که ازشون حتی در استفاده ب عنوان session هم توصیه نمیشه و …

این ویدیو ببینی به نظرم کلا مشکلات حل می شه

1 پسندیده

متاسفانه من نمیتونم ویدیو ببینم و با کتاب خیلی راحتم . یکی هم تفاوت ها متاسفانه گاهی اوقات یکم اساسی هست و فک نکنم ویدیو حل بکنه . الان تو دادا از کدوم نسخه استفاده میکنی ؟
تو 1.2 مدل بود تو 1.3 کلا مدل و فضای نامی رو تغییر دادن
Schema تو نسخه 1.2 داخل پوشع مدل بود ولی تو نسخه 1.3 رفته ی پوشه دیگه و کافیه بنویسی
mix phx.gen.schema User users name:string
خودش برات هم schema هم migration رو انجام میده و کافیه بعدش ecto.migrate رو بزنی :pensive:
من از سایت خودشون پرسیدم گفتن فعلا تغییری تو کتاب نمیدن چون ظاهرا این فریم ورک هنوز فراز و نشیب زیاد داره و قرارع تموم ک شد کتاب رو ب طور کامل و اساسی اپدیت کنن😯
تازه وقت کامپیال 1.3 هم کلی هشدار میاد که توابعی ک تو 1.3 استفاده شدن ب زودی از الکسیر پاک میشن و جایگزین میاد :sob::sob::sob::sob::sob::sob:
یواش یواش دارم ب این نتیجه میرسم باید وایستم تا برسه ب نسخه 2 بعد ان دیگه تغییرات چنان چشم گیر نمیشه

تو 1.2 این کافی بود
use Hello.Web,:model
اما تو 1.3
use Ecto.Schema
import Ecto.Changeset
alias Hello.User

البته دیگه بجای Project.Web هم باید ProjectWeb نوشت البته اینا جزئی ان چیزی نیس منتها بقیه اساسی ان و متاسفامه داکیومنت رسمی وبسایت خودشون عالیه ولی خیلی جاها رو کامل نگفته و این بخاطر سیاست فروش کتابیه ک خودشون نوشتن:cry::cry::cry::cry::cry::cry::cry::cry:
انقد کتاب و منبع برا elixir هست هنو برا فئونیکس نیس و من فعلا تابجال بهتربن منبعی ک برای phoenix پیدا کردم داکیومنت خودشون و اموزش ها و نوشته هایی هست که تو medium میزارن و گاهی اوقات پروژه محور و جذابن حتما سربزن اونجا واقعا خفنه

1 پسندیده

دادا این مشکل هست دیگه من خودم هنوزم دقیق نمیدونم genserver ب چه دردی میخوره با اینکه با مصیبت با پروسس های خالی و اولیه تونستم ی چیزی شبیه genserver بنویسم تا بتونم درک کنم چیه اما هنوزم مورد استفادشو ندیدم و نمیدونم کچا بابد استفاده کنم :joy::joy::joy::joy:
البته از یکی پرسیدم گفت با ماشین مجازی یا حداقل دوسه تا pc ارلنگ رو نصب کن و اون وقت دقیق تر میتونی بفهمی اینا چیه و کاربرد اینا بیشتر برای مقیاس پذیری هست که اونم متاسفانه سواد درست حسابیشو ندارم و یبار این کارو کردم امواتم اومدن جلو چشمم

1 پسندیده

درود من از نسخه 1.3 استفاده می کنم و من هر پروژه ای که روی الکسیر می یارم خیلی بزرگه بخاطر همین من

  mix phx.new nameproject --umbrella

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

راستی شما اگر می خوای یک نمونه ببنی چیجوری هست فکر کنم این دستور کارتو جلو بندازه برات یک نمونه کنترلر و … درست می کنه

mix phx.gen.html Acc User users name:string

من از فونیکس فقط به عنوان یک نمایش دهنده استفاده می کنم و تمامی کد های من داخل خود پروژه الکسیر هست و دوباره آموزش ویدویی که قبلا داشتم رو دارم می رم جلو تاحالا هیچ مشکلی نخوردم مثل همون قبلی هست . . نمی دونم چرا انقدر سختش کردی . همون کد هست الکسیر باز تغییر نکرده که همون فانکشن و همون روتر هست که فکر نمی کنم تفاوت بکنه . حتی کد های مربوط به ریل تایم از جایی کپی کرده بودم هم تو چنل نویسیش مشکلی ایجاد نکرد

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

2 پسندیده

استفاده از mnisia ،dets ets باید با درک کاربرد شون استفاده باشه WhatsApp و bleacherreport ازاین ها به خوبی بهره میگیرن اگه شما postgresql و بهتر میشناسی از postgresql استفاده کن حتما

2 پسندیده

بله درسته گفته هاتون اما هرجا ی چیزی مینویسن و ادم نمیدونه چی بگه . فک کنم اگر طرز استفاده اینا رو کسی خوب بدونه ب مشکل برنمیخوره البته اگر خوب بدونه . واتس اپ حتی تا جایی ک من میدونم دیتابیسش هم mnesia عستش منتها تو یکی از همین کتاب های الکسیر طرف کلی نقدش کرده بود . البته باید این واقعیتو قبول کنیم نویسنده های کتابا خودسونم درست و حسابی بلد نیستن و خیلی جاها مجبور شدن ب تیم الکسیر ایمیل بفرستن

آها والا چی بگم اما کتاب یکم فرق داره . اره gen.html چیز خفنیه ولی بیشتر جنبه اموزشی داره و سایت رسمی خودشم گفته روش حساب باز نکنید . برا این چیزی ک گفتی از خود الکسیر استفاده میکنم و فئونیکس صرفا کار view رو انجام میده این خیلی خوبه تو اون کتابی ک بهتم فرستادم ی سرور بازی میسازه دقیقا همین کارو میکنه و واقعا ادم لذت میبره .
دادا اگر مورد استفاده otp همینا بودن که اینا رو میشع تو php با redis هم براحتی کرد اینارو مشه با genserver انجام داد حرف من اون چیزای خفنیه که متاسفانه اموزشی ندارن و مورد اصلی otp همیناست . تو گیت هاب ی پروژه چت سرور است که من اونو دان کردم دارم خودم توسعه میدمش و باعث شده بیشتر بفهمم otp چیه و تونستم کاری کنم پردازش ها بین ماشین ها پخش بشه اما خیلی سخته از طرفی هم هیچ منبع خوبی برا این کارا نیس و قدرت ارلنگ بحاطر همیناس وگرنه با js و… که فرقی نداشت

1 پسندیده

دوست من کلا باید تو پروژه رفت تا بلخره کاربرد ها توسعه پیدا کنه . بر اساس خود پروژه باید رفت جلو جای خفنشم می رسه که موارد بر اساس اون جستجو و تحقیق می شه:grinning: سختش کردی . بزن یک سایت یا یک وب اپ ای رو یباش یباش توسعه بده حل مشکل کن می شه خفن
ولی در کل من بررسی هایی که کردم زیاد یا حتی ممکنه اصلا در یک پروژه استفاده نشه . ولی از تسک ها برای ارسال چندین درخواست همزمان فکر می کنم استفاده بیشتری ببرم

1 پسندیده