Skip to content

Commit b4bb312

Browse files
committed
add redis page
1 parent 1d94fda commit b4bb312

File tree

93 files changed

+662
-232
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+662
-232
lines changed

about-author.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ <h3 class="panel-head"><a href="/table-of-contents.html" style="color: #fff;">Ch
140140
<div style="margin: 0 0 12px;background-color: #22B24C;">
141141
<div class="container">
142142
<p class="banner sans-font">
143-
<a href="https://gumroad.com/l/python-deployments" style="color: #fff">Learn to deploy Python web applications with this step-by-step book tutorial</a>.
143+
<a href="https://gumroad.com/l/python-deployments" style="color: #fff">Learn to deploy Python web applications with this step-by-step book</a>.
144144
</p>
145145
</div>
146146
</div>

all.html

Lines changed: 114 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8735,8 +8735,7 @@ <h3>Key-value pair data stores</h3>
87358735
store. Redis is often called "the Swiss Army Knife of web application
87368736
development." It can be used for caching, queuing, and storing session data
87378737
for faster access than a traditional relational database, among many other
8738-
use cases. <a href="https://github.com/andymccurdy/redis-py">Redis-py</a> is a solid
8739-
Python client to use with Redis.</p>
8738+
use cases. Learn more on the <a href="/redis.html">Redis page</a>.</p>
87408739
</li>
87418740
<li>
87428741
<p><a href="http://www.memcached.org/">Memcached</a> is another widely used in-memory
@@ -8790,30 +8789,6 @@ <h3>Redis resources</h3>
87908789
applications by modifying your <code>redis.conf</code> settings.</p>
87918790
</li>
87928791
</ul>
8793-
<h3>Redis Security</h3>
8794-
<p>Redis should be customized out of its default configuration to secure it
8795-
against unauthorized and unauthenticated users. These resources provide
8796-
some advice on Reids security and guarding against data breaches.</p>
8797-
<ul>
8798-
<li>
8799-
<p><a href="http://averagesecurityguy.info/2015/09/17/pentesting-redis-servers/">Pentesting Redis servers</a>
8800-
shows that security is important not only on your application but also
8801-
the databases you're using as well.</p>
8802-
</li>
8803-
<li>
8804-
<p>Redis, just as with any relational or NoSQL database, needs to be secured
8805-
based on <a href="http://www.antirez.com/news/96">security guidelines</a>. There is
8806-
also a post where the main author of Redis
8807-
<a href="http://www.antirez.com/news/96">cracks its security</a> to show the tradeoffs
8808-
purposely made between ease of use and security in the default settings.</p>
8809-
</li>
8810-
<li>
8811-
<p><a href="https://www.isredisallsafe.com/">Is your Redis server safe?</a> is a tool
8812-
to test that your Redis instances are locked down. The tool is based on
8813-
the blog post
8814-
<a href="http://www.antirez.com/news/96">a few things about Redis security</a>.</p>
8815-
</li>
8816-
</ul>
88178792
<h2>Document-oriented</h2>
88188793
<p>A document-oriented database provides a semi-structured representation for
88198794
nested data.</p>
@@ -8977,6 +8952,118 @@ <h2>NoSQL data stores learning checklist</h2>
89778952
document-oriented data store such as MongoDB.</p>
89788953
</li>
89798954
</ol>
8955+
<h1>Redis</h1>
8956+
<p><a href="https://redis.io/">Redis</a> is an in-memory key-value pair
8957+
database typically classified as a <a href="/no-sql-datastore.html">NoSQL database</a>.
8958+
Redis is commonly used for <a href="/caching.html">caching</a>, transient data storage
8959+
and as a holding area for data during analysis in Python applications.</p>
8960+
<p><a href="" style="border: none;"><img src="/source/static/img/logos/redis.jpg" width="100%" alt="Redis logo." class="technical-diagram" /></a></p>
8961+
<div class="well see-also">Redis is an implementation of the <a href="/no-sql-datastore.html">NoSQL database</a> concept. Learn more in the <a href="/data.html">data</a> chapter or view the <a href="/table-of-contents.html">table of contents</a> for all topics.</div>
8962+
8963+
<h3>Redis tutorials</h3>
8964+
<p>Redis is easy to install and start using compared to most other persistent
8965+
backends, but it's useful to follow a walkthrough if you have never
8966+
previously used Redis or any NoSQL data store.</p>
8967+
<ul>
8968+
<li>
8969+
<p><a href="/blog/install-redis-use-python-3-ubuntu-1604.html">How to Use Redis with Python 3 and redis-py on Ubuntu 16.04</a>
8970+
contains detailed steps to install and start using Redis in Python.</p>
8971+
</li>
8972+
<li>
8973+
<p><a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-use-redis">How To Install and Use Redis</a>
8974+
is a Redis starter guide.</p>
8975+
</li>
8976+
</ul>
8977+
<h3>Redis with Python</h3>
8978+
<p>Redis is easier to use with Python if you have a code library client that
8979+
bridges from your code to your Redis instace. The following libraries and
8980+
resources provide more information on handling data in a Redis instance
8981+
with your Python code.</p>
8982+
<ul>
8983+
<li>
8984+
<p><a href="https://github.com/andymccurdy/redis-py">Redis-py</a> is a solid
8985+
Python client to use with Redis.</p>
8986+
</li>
8987+
<li>
8988+
<p><a href="http://charlesleifer.com/blog/walrus-lightweight-python-utilities-for-working-with-redis/">Walrus</a>
8989+
is a higher-level Python wrapper for Redis with some caching, querying
8990+
and data structure components build into the library.</p>
8991+
</li>
8992+
<li>
8993+
<p><a href="http://jamesls.com/writing-redis-in-python-with-asyncio-part-1.html">Writing Redis in Python with Asyncio</a>
8994+
shows a detailed example for how to use the new Asyncio standard library in
8995+
Python 3.4+ for working with Redis.</p>
8996+
</li>
8997+
</ul>
8998+
<h3>Redis Security</h3>
8999+
<p>Redis should be customized out of its default configuration to secure it
9000+
against unauthorized and unauthenticated users. These resources provide
9001+
some advice on Reids security and guarding against data breaches.</p>
9002+
<ul>
9003+
<li>
9004+
<p><a href="http://averagesecurityguy.info/2015/09/17/pentesting-redis-servers/">Pentesting Redis servers</a>
9005+
shows that security is important not only on your application but also
9006+
the databases you're using as well.</p>
9007+
</li>
9008+
<li>
9009+
<p>Redis, just as with any relational or NoSQL database, needs to be secured
9010+
based on <a href="http://www.antirez.com/news/96">security guidelines</a>. There is
9011+
also a post where the main author of Redis
9012+
<a href="http://www.antirez.com/news/96">cracks its security</a> to show the tradeoffs
9013+
purposely made between ease of use and security in the default settings.</p>
9014+
</li>
9015+
<li>
9016+
<p><a href="https://www.isredisallsafe.com/">Is your Redis server safe?</a> is a tool
9017+
to test that your Redis instances are locked down. The tool is based on
9018+
the blog post
9019+
<a href="http://www.antirez.com/news/96">a few things about Redis security</a>.</p>
9020+
</li>
9021+
<li>
9022+
<p><a href="https://medium.com/@shahinism/for-gods-sake-secure-your-mongo-redis-etc-4f310cf1bed2">For God’s sake, secure your Mongo/Redis/etc!</a>
9023+
digs into the unfortunate default security settings that come with many
9024+
NoSQL databases which can be used to compromise your systems. Make sure
9025+
to not only install your dependencies such as Redis, but automate modifying
9026+
default settings to lock them down against attackers.</p>
9027+
</li>
9028+
</ul>
9029+
<h3>General Redis resources</h3>
9030+
<p>Once you have configured Redis, become comfortable using it and locked it
9031+
down against malicious actors, you will want to learn more about operating,
9032+
scaling and collecting metrics. The following resources should help you
9033+
get started in those areas.</p>
9034+
<ul>
9035+
<li>
9036+
<p><a href="https://github.com/mikeblum/redis-playbook">Redis-playbook</a> is an Ansible
9037+
playbook for installing, configuring and securing a Redis instance.</p>
9038+
</li>
9039+
<li>
9040+
<p>GitHub wrote a retrospective on
9041+
<a href="http://githubengineering.com/moving-persistent-data-out-of-redis/">moving persistent data out of Redis</a>
9042+
and into <a href="/mysql.html">MySQL</a> that is worth a read as you scale up your
9043+
Redis usage.</p>
9044+
</li>
9045+
<li>
9046+
<p>This video on
9047+
<a href="https://www.youtube.com/watch?v=rP9EKvWt0zo">Scaling Redis at Twitter</a> is
9048+
a detailed look behind the scenes with a massive Redis deployment.</p>
9049+
</li>
9050+
<li>
9051+
<p><a href="https://blog.heroku.com/real-world-redis-tips">Real World Redis Tips</a>
9052+
provides some guidance from Heroku's engineers from deploying Redis at
9053+
scale. The tips include setting an explicit idle connection timeout,
9054+
using a connection pooler and avoiding using <code>KEYS</code> in favor of <code>SCAN</code>.</p>
9055+
</li>
9056+
<li>
9057+
<p><a href="https://www.datadoghq.com/blog/how-to-collect-redis-metrics/">How to collect Redis metrics</a>
9058+
shows how to use the Redis CLI client to grab key metrics on latency.</p>
9059+
</li>
9060+
<li>
9061+
<p><a href="https://medium.com/appaloosa-store-engineering/you-should-revise-your-redis-max-connections-setting-8136f063c916">You should revise your Redis max connections setting</a>
9062+
is a retrospective from a hard web application failure due to Redis
9063+
connections maxing out on Heroku, and how to avoid this in your own
9064+
applications by modifying your <code>redis.conf</code> settings.</p>
9065+
</li>
9066+
</ul>
89809067
<h1>Application Programming Interfaces</h1>
89819068
<p>Application programming interfaces (APIs) provide machine-readable
89829069
data transfer and signaling between applications.</p>
@@ -10067,6 +10154,7 @@ <h1>Change Log</h1>
1006710154
<h2>2017</h2>
1006810155
<h3>January</h3>
1006910156
<ul>
10157+
<li>Further work on the <a href="/git.html">Git</a> page.</li>
1007010158
<li>New <a href="/git.html">Git</a> page.</li>
1007110159
<li>New resources and descriptions on the
1007210160
<a href="/development-environments.html">development environments</a> page.</li>

0 commit comments

Comments
 (0)