[50229] trunk/dports/databases

blb at macports.org blb at macports.org
Mon Apr 27 16:50:17 PDT 2009


Revision: 50229
          http://trac.macports.org/changeset/50229
Author:   blb at macports.org
Date:     2009-04-27 16:50:16 -0700 (Mon, 27 Apr 2009)
Log Message:
-----------
New port - databases/redis, A persistent key-value database with built-in net interface written in ANSI-C for POSIX systems; ticket #19409

Added Paths:
-----------
    trunk/dports/databases/redis/
    trunk/dports/databases/redis/Portfile
    trunk/dports/databases/redis/files/
    trunk/dports/databases/redis/files/redis-daemon.conf
    trunk/dports/databases/redis/files/redis.conf

Added: trunk/dports/databases/redis/Portfile
===================================================================
--- trunk/dports/databases/redis/Portfile	                        (rev 0)
+++ trunk/dports/databases/redis/Portfile	2009-04-27 23:50:16 UTC (rev 50229)
@@ -0,0 +1,55 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem 1.0
+
+name			redis
+version			0.092
+categories		databases
+maintainers		nomaintainer
+description		A persistent key-value database with built-in net interface written in ANSI-C for POSIX systems
+long_description \
+	Redis is a key-value database. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists and sets with atomic operations to push/pop elements. \
+	In order to be very fast but at the same time persistent the whole dataset is taken in memory and from time to time and/or when a number of changes to the dataset are performed it is written asynchronously on disk. You may lost the last few queries that is acceptable in many applications but it is as fast as an in memory DB (beta 6 of Redis includes initial support for master-slave replication in order to solve this problem by redundancy).
+homepage		http://code.google.com/p/redis/
+platforms		darwin
+master_sites	googlecode
+checksums       md5     c78d9fc17b9cc9e924f18520fe84e598 \
+                sha1    2b656fd788bcda5196f13f45724b61b2e707f759 \
+                rmd160  ebf9d37c1982e33407b6e74d495c1f0f5a08b516
+
+use_configure no
+
+destroot {
+	xinstall -m 0755 -W ${worksrcpath} "redis-benchmark" "redis-cli" "redis-server" \
+		${destroot}${prefix}/bin
+	xinstall -m 0644 ${filespath}/redis.conf \
+		${destroot}${prefix}/etc/redis.conf.sample
+	xinstall -m 0644 ${filespath}/redis-daemon.conf \
+		${destroot}${prefix}/etc/redis-daemon.conf.sample
+}
+
+post-activate {
+	if {![file exists ${prefix}/etc/redis-daemon.conf]} {
+		file copy ${prefix}/etc/redis-daemon.conf.sample \
+			${prefix}/etc/redis-daemon.conf
+	}
+	if {![file exists ${prefix}/etc/redis.conf]} {
+		file copy ${prefix}/etc/redis.conf.sample \
+			${prefix}/etc/redis.conf
+	}
+	xinstall -d ${prefix}/var/db/redis
+	touch ${prefix}/var/log/redis.log
+	ui_msg "
+=============================================================================
+* To start up a redis server instance use this command:
+* 
+*   redis-server ${prefix}/etc/redis.conf
+* 
+=============================================================================
+"
+}
+
+startupitem.create	yes
+startupitem.start	"${prefix}/bin/redis-server ${prefix}/etc/redis-daemon.conf"
+startupitem.stop	"echo \"SHUTDOWN\" | nc localhost 6379"


Property changes on: trunk/dports/databases/redis/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/databases/redis/files/redis-daemon.conf
===================================================================
--- trunk/dports/databases/redis/files/redis-daemon.conf	                        (rev 0)
+++ trunk/dports/databases/redis/files/redis-daemon.conf	2009-04-27 23:50:16 UTC (rev 50229)
@@ -0,0 +1,87 @@
+# Redis Daemon configuration file example
+
+# By default Redis does not run as a daemon. Use 'yes' if you need it.
+# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
+daemonize yes
+
+# When run as a daemon, Redis write a pid file in /var/run/redis.pid by default.
+# You can specify a custom pid file location here.
+pidfile /opt/local/var/run/redis.pid
+
+# Accept connections on the specified port, default is 6379
+port 6379
+
+# If you want you can bind a single interface, if the bind option is not
+# specified all the interfaces will listen for connections.
+#
+# bind 127.0.0.1
+
+# Close the connection after a client is idle for N seconds
+timeout 300
+
+# Save the DB on disk:
+#
+#   save <seconds> <changes>
+#
+#   Will save the DB if both the given number of seconds and the given
+#   number of write operations against the DB occurred.
+#
+#   In the example below the behaviour will be to save:
+#   after 900 sec (15 min) if at least 1 key changed
+#   after 300 sec (5 min) if at least 10 keys changed
+#   after 60 sec if at least 10000 keys changed
+save 900 1
+save 300 10
+save 60 10000
+
+# For default save/load DB in/from the working directory
+# Note that you must specify a directory not a file name.
+dir /opt/local/var/db/redis
+
+# Set server verbosity to 'debug'
+# it can be one of:
+# debug (a lot of information, useful for development/testing)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+loglevel notice
+
+# Specify the log file name. Also 'stdout' can be used to force
+# the demon to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile /opt/local/var/log/redis.log
+
+# Set the number of databases.
+databases 16
+
+################################# REPLICATION #################################
+
+# Master-Slave replication. Use slaveof to make a Redis instance a copy of
+# another Redis server. Note that the configuration is local to the slave
+# so for example it is possible to configure the slave to save the DB with a
+# different interval, or to listen to another port, and so on.
+
+# slaveof <masterip> <masterport>
+
+################################## SECURITY ###################################
+
+# Require clients to issue AUTH <PASSWORD> before processing any other
+# commands.  This might be useful in environments in which you do not trust
+# others with access to the host running redis-server.
+#
+# This should stay commented out for backward compatibility and because most
+# people do not need auth (e.g. they run their own servers).
+
+# requirepass foobared
+
+############################### ADVANCED CONFIG ###############################
+
+# Glue small output buffers together in order to send small replies in a
+# single TCP packet. Uses a bit more CPU but most of the times it is a win
+# in terms of number of queries per second. Use 'yes' if unsure.
+glueoutputbuf yes
+
+# Use object sharing. Can save a lot of memory if you have many common
+# string in your dataset, but performs lookups against the shared objects
+# pool so it uses more CPU and can be a bit slower. Usually it's a good
+# idea.
+shareobjects no

Added: trunk/dports/databases/redis/files/redis.conf
===================================================================
--- trunk/dports/databases/redis/files/redis.conf	                        (rev 0)
+++ trunk/dports/databases/redis/files/redis.conf	2009-04-27 23:50:16 UTC (rev 50229)
@@ -0,0 +1,87 @@
+# Redis Daemon configuration file example
+
+# By default Redis does not run as a daemon. Use 'yes' if you need it.
+# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
+daemonize no
+
+# When run as a daemon, Redis write a pid file in /var/run/redis.pid by default.
+# You can specify a custom pid file location here.
+pidfile /opt/local/var/run/redis.pid
+
+# Accept connections on the specified port, default is 6379
+port 6379
+
+# If you want you can bind a single interface, if the bind option is not
+# specified all the interfaces will listen for connections.
+#
+# bind 127.0.0.1
+
+# Close the connection after a client is idle for N seconds
+timeout 300
+
+# Save the DB on disk:
+#
+#   save <seconds> <changes>
+#
+#   Will save the DB if both the given number of seconds and the given
+#   number of write operations against the DB occurred.
+#
+#   In the example below the behaviour will be to save:
+#   after 900 sec (15 min) if at least 1 key changed
+#   after 300 sec (5 min) if at least 10 keys changed
+#   after 60 sec if at least 10000 keys changed
+save 900 1
+save 300 10
+save 60 10000
+
+# For default save/load DB in/from the working directory
+# Note that you must specify a directory not a file name.
+dir /opt/local/var/db/redis
+
+# Set server verbosity to 'debug'
+# it can be one of:
+# debug (a lot of information, useful for development/testing)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+loglevel debug
+
+# Specify the log file name. Also 'stdout' can be used to force
+# the demon to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile stdout
+
+# Set the number of databases.
+databases 16
+
+################################# REPLICATION #################################
+
+# Master-Slave replication. Use slaveof to make a Redis instance a copy of
+# another Redis server. Note that the configuration is local to the slave
+# so for example it is possible to configure the slave to save the DB with a
+# different interval, or to listen to another port, and so on.
+
+# slaveof <masterip> <masterport>
+
+################################## SECURITY ###################################
+
+# Require clients to issue AUTH <PASSWORD> before processing any other
+# commands.  This might be useful in environments in which you do not trust
+# others with access to the host running redis-server.
+#
+# This should stay commented out for backward compatibility and because most
+# people do not need auth (e.g. they run their own servers).
+
+# requirepass foobared
+
+############################### ADVANCED CONFIG ###############################
+
+# Glue small output buffers together in order to send small replies in a
+# single TCP packet. Uses a bit more CPU but most of the times it is a win
+# in terms of number of queries per second. Use 'yes' if unsure.
+glueoutputbuf yes
+
+# Use object sharing. Can save a lot of memory if you have many common
+# string in your dataset, but performs lookups against the shared objects
+# pool so it uses more CPU and can be a bit slower. Usually it's a good
+# idea.
+shareobjects no
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090427/06cd298c/attachment.html>


More information about the macports-changes mailing list