XZES40 / CS-Capstone-Project

Oregon State University CS Capstone LaTeX Files
1 stars 1 forks source link

Explore using Redis for Caching Layer #18

Closed pop closed 7 years ago

pop commented 7 years ago

@Todopen @zixunlu Please read.

Redis is a very popular caching application described as:

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

I know we have already completed our design document but we should explore using Redis for our caching. In my experience it is very easy to use and setup. I have not used it with C/C++ but with Ruby it was very simple to use and 'Just Worked'. Over break you should try using it with C to store our cached objects. It may make our lives much easier.

EDIT: An interactive tutorial can be found here: http://try.redis.io/ but this will not be the same as using it with C/C++. For that you will need to create a Virtual Machine (not necessarily the one our client gaves us, you can install it on any Linux virtual mchine).

shathaway commented 7 years ago

@Todopen @zixunlu Please read.

Redis is a very popular caching application described as:

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

I know we have already completed our design document but we should explore using Redis for our caching. In my experience it is very easy to use and setup. I have not used it with C/C++ but with Ruby it was very simple to use and 'Just Worked'. Over break you should try using it with C to store our cached objects. It may make our lives much easier.

I already have a single-list library that can accommodate queue prototypes and handle a large variety of object types. I will post the code into the capstone GIT.

Steve Hathaway

-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/XZES40/CS-Capstone-Project/issues/18

pop commented 7 years ago

Thank you @shathaway. I cannot wait to see it.

pop commented 7 years ago

@shathaway. I would still like @Todopen and @zixunlu to explore using Redis as an alternative to shipping our own in-memory cache as it meets many of our needs and has the advantage of being well tested and still free.

todouu commented 7 years ago

@ElijahCaine. OK, this software sounds great. I will explore it during holiday.

zixunlu commented 7 years ago

OK no problem.

2016年12月27日星期二,Shuai Peng notifications@github.com 写道:

@ElijahCaine https://github.com/ElijahCaine. OK, this software sounds great. I will explore it during holiday.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/XZES40/CS-Capstone-Project/issues/18#issuecomment-269249261, or mute the thread https://github.com/notifications/unsubscribe-auth/ASmoB7XPt9bFRLkCrvCM2eziMfqM1uqiks5rME_NgaJpZM4LIMoN .

shathaway commented 7 years ago

I added Transformer/capstone/... for your use in prototyping. See specifically the keylist.h/c linked list architecture. It is written in 'C' but can accommodate static pointers to C++ classes and a method that wraps a C++ object destructor. The destructor is called before the linked list element is destroyed.

pop commented 7 years ago

We will not be using Redis.