diff options
6 files changed, 742 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch b/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch new file mode 100644 index 0000000000..8135fc28e3 --- /dev/null +++ b/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | From dc745a33f3875cc72d41bd34ed490b352e546352 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Venture Research <tech@ventureresearch.com> | ||
| 3 | Date: Fri, 8 Feb 2013 17:39:52 -0600 | ||
| 4 | Subject: [PATCH] hiredis: use default CC if it is set | ||
| 5 | |||
| 6 | Instead of trying to automagically figure out CC, which breaks with OE | ||
| 7 | as CC has spaces in it, just skip it if one was already passed in. | ||
| 8 | |||
| 9 | Signed-off-by: Venture Research <tech@ventureresearch.com> | ||
| 10 | --- | ||
| 11 | deps/hiredis/Makefile | 2 +- | ||
| 12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 13 | |||
| 14 | diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile | ||
| 15 | index 16b8767..0b27c82 100644 | ||
| 16 | --- a/deps/hiredis/Makefile | ||
| 17 | +++ b/deps/hiredis/Makefile | ||
| 18 | @@ -11,7 +11,7 @@ HIREDIS_MAJOR=0 | ||
| 19 | HIREDIS_MINOR=10 | ||
| 20 | |||
| 21 | # Fallback to gcc when $CC is not in $PATH. | ||
| 22 | -CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc') | ||
| 23 | +CC?=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) || echo gcc') | ||
| 24 | OPTIMIZATION?=-O3 | ||
| 25 | WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings | ||
| 26 | DEBUG?= -g -ggdb | ||
| 27 | -- | ||
| 28 | 1.8.1.2 | ||
| 29 | |||
diff --git a/meta-oe/recipes-extended/redis/redis/init-redis-server b/meta-oe/recipes-extended/redis/redis/init-redis-server new file mode 100755 index 0000000000..6014d70c0e --- /dev/null +++ b/meta-oe/recipes-extended/redis/redis/init-redis-server | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # | ||
| 3 | ### BEGIN INIT INFO | ||
| 4 | # Provides: redis-server | ||
| 5 | # Required-Start: $network | ||
| 6 | # Required-Stop: $network | ||
| 7 | # Default-Start: S 2 3 4 5 | ||
| 8 | # Default-Stop: 0 1 6 | ||
| 9 | # Short-Description: Redis, a key-value store | ||
| 10 | # Description: Redis is an open source, advanced key-value store. | ||
| 11 | # http://redis.io | ||
| 12 | ### END INIT INFO | ||
| 13 | |||
| 14 | test -f /usr/bin/redis-server || exit 0 | ||
| 15 | |||
| 16 | ARGS="/etc/redis/redis.conf" | ||
| 17 | |||
| 18 | case "$1" in | ||
| 19 | start) | ||
| 20 | echo "Starting redis-server..." | ||
| 21 | start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS | ||
| 22 | ;; | ||
| 23 | stop) | ||
| 24 | echo "Stopping redis-server..." | ||
| 25 | start-stop-daemon --stop --quiet --exec /usr/bin/redis-server | ||
| 26 | ;; | ||
| 27 | restart) | ||
| 28 | echo "Stopping redis-server..." | ||
| 29 | start-stop-daemon --stop --quiet --exec /usr/bin/redis-server | ||
| 30 | echo "Starting redis-server..." | ||
| 31 | start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS | ||
| 32 | ;; | ||
| 33 | *) | ||
| 34 | echo "Usage: /etc/init.d/redis-server {start|stop|restart}" | ||
| 35 | exit 1 | ||
| 36 | ;; | ||
| 37 | esac | ||
| 38 | |||
| 39 | exit 0 | ||
| 40 | |||
diff --git a/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch b/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch new file mode 100644 index 0000000000..c4d1bc493b --- /dev/null +++ b/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | From 394108035d350ae662a431c80131f812b5f72dff Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Venture Research <tech@ventureresearch.com> | ||
| 3 | Date: Fri, 8 Feb 2013 20:22:19 -0600 | ||
| 4 | Subject: [PATCH] lua: update Makefile to use environment build settings | ||
| 5 | |||
| 6 | OE-specific parameters, instead of overriding all of these simply use | ||
| 7 | the ones that are already passed in. Also configure for only Linux... | ||
| 8 | |||
| 9 | Signed-off-by: Venture Research <tech@ventureresearch.com> | ||
| 10 | --- | ||
| 11 | deps/lua/src/Makefile | 18 +++++++----------- | ||
| 12 | 1 file changed, 7 insertions(+), 11 deletions(-) | ||
| 13 | |||
| 14 | diff --git a/deps/lua/src/Makefile b/deps/lua/src/Makefile | ||
| 15 | index 77d6a48..888d0da 100644 | ||
| 16 | --- a/deps/lua/src/Makefile | ||
| 17 | +++ b/deps/lua/src/Makefile | ||
| 18 | @@ -5,18 +5,14 @@ | ||
| 19 | # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= | ||
| 20 | |||
| 21 | # Your platform. See PLATS for possible values. | ||
| 22 | -PLAT= none | ||
| 23 | +PLAT= linux | ||
| 24 | |||
| 25 | -CC= gcc | ||
| 26 | -CFLAGS= -O2 -Wall $(MYCFLAGS) | ||
| 27 | -AR= ar rcu | ||
| 28 | -RANLIB= ranlib | ||
| 29 | -RM= rm -f | ||
| 30 | -LIBS= -lm $(MYLIBS) | ||
| 31 | - | ||
| 32 | -MYCFLAGS= | ||
| 33 | +MYCFLAGS=-DLUA_USE_LINUX | ||
| 34 | MYLDFLAGS= | ||
| 35 | -MYLIBS= | ||
| 36 | +MYLIBS=-Wl,-E -ldl -lreadline -lhistory -lncurses | ||
| 37 | + | ||
| 38 | +CFLAGS += $(MYCFLAGS) | ||
| 39 | +LIBS += -lm $(MYLIBS) | ||
| 40 | |||
| 41 | # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE ========= | ||
| 42 | |||
| 43 | @@ -48,7 +44,7 @@ o: $(ALL_O) | ||
| 44 | a: $(ALL_A) | ||
| 45 | |||
| 46 | $(LUA_A): $(CORE_O) $(LIB_O) | ||
| 47 | - $(AR) $@ $? | ||
| 48 | + $(AR) rcu $@ $? | ||
| 49 | $(RANLIB) $@ | ||
| 50 | |||
| 51 | $(LUA_T): $(LUA_O) $(LUA_A) | ||
| 52 | -- | ||
| 53 | 1.8.1.2 | ||
| 54 | |||
diff --git a/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch b/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch new file mode 100644 index 0000000000..b89c871290 --- /dev/null +++ b/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | From f8861d2129b9e18bba137705bfa38c6bd9be1790 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Venture Research <tech@ventureresearch.com> | ||
| 3 | Date: Wed, 6 Feb 2013 20:51:02 -0600 | ||
| 4 | Subject: [PATCH] hack to force use of libc malloc | ||
| 5 | |||
| 6 | Hack to force libc usage as it seems the option to pass it in has been | ||
| 7 | removed in favor of magic. | ||
| 8 | |||
| 9 | Note that this of course doesn't allow tcmalloc and jemalloc, however | ||
| 10 | jemalloc wasn't building correctly. | ||
| 11 | |||
| 12 | Signed-off-by: Venture Research <tech@ventureresearch.com> | ||
| 13 | --- | ||
| 14 | src/Makefile | 2 +- | ||
| 15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 16 | |||
| 17 | diff --git a/src/Makefile b/src/Makefile | ||
| 18 | index 204a271..91b307d 100644 | ||
| 19 | --- a/src/Makefile | ||
| 20 | +++ b/src/Makefile | ||
| 21 | @@ -13,7 +13,8 @@ | ||
| 22 | # Just use 'make dep', but this is only needed by developers. | ||
| 23 | |||
| 24 | release_hdr := $(shell sh -c './mkreleasehdr.sh') | ||
| 25 | -uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') | ||
| 26 | +# use fake uname option to force use of generic libc | ||
| 27 | +uname_S := "USE_LIBC_MALLOC" | ||
| 28 | OPTIMIZATION?=-O2 | ||
| 29 | DEPENDENCY_TARGETS=hiredis linenoise lua | ||
| 30 | |||
| 31 | -- | ||
| 32 | 1.8.1.2 | ||
| 33 | |||
diff --git a/meta-oe/recipes-extended/redis/redis/redis.conf b/meta-oe/recipes-extended/redis/redis/redis.conf new file mode 100644 index 0000000000..923b98e5c8 --- /dev/null +++ b/meta-oe/recipes-extended/redis/redis/redis.conf | |||
| @@ -0,0 +1,550 @@ | |||
| 1 | # Redis configuration file example | ||
| 2 | |||
| 3 | # Note on units: when memory size is needed, it is possible to specify | ||
| 4 | # it in the usual form of 1k 5GB 4M and so forth: | ||
| 5 | # | ||
| 6 | # 1k => 1000 bytes | ||
| 7 | # 1kb => 1024 bytes | ||
| 8 | # 1m => 1000000 bytes | ||
| 9 | # 1mb => 1024*1024 bytes | ||
| 10 | # 1g => 1000000000 bytes | ||
| 11 | # 1gb => 1024*1024*1024 bytes | ||
| 12 | # | ||
| 13 | # units are case insensitive so 1GB 1Gb 1gB are all the same. | ||
| 14 | |||
| 15 | # By default Redis does not run as a daemon. Use 'yes' if you need it. | ||
| 16 | # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. | ||
| 17 | # | ||
| 18 | # OE: run as a daemon. | ||
| 19 | # | ||
| 20 | daemonize yes | ||
| 21 | |||
| 22 | # When running daemonized, Redis writes a pid file in /var/run/redis.pid by | ||
| 23 | # default. You can specify a custom pid file location here. | ||
| 24 | pidfile /var/run/redis.pid | ||
| 25 | |||
| 26 | # Accept connections on the specified port, default is 6379. | ||
| 27 | # If port 0 is specified Redis will not listen on a TCP socket. | ||
| 28 | port 6379 | ||
| 29 | |||
| 30 | # If you want you can bind a single interface, if the bind option is not | ||
| 31 | # specified all the interfaces will listen for incoming connections. | ||
| 32 | # | ||
| 33 | # bind 127.0.0.1 | ||
| 34 | |||
| 35 | # Specify the path for the unix socket that will be used to listen for | ||
| 36 | # incoming connections. There is no default, so Redis will not listen | ||
| 37 | # on a unix socket when not specified. | ||
| 38 | # | ||
| 39 | # unixsocket /tmp/redis.sock | ||
| 40 | # unixsocketperm 755 | ||
| 41 | |||
| 42 | # Close the connection after a client is idle for N seconds (0 to disable) | ||
| 43 | timeout 0 | ||
| 44 | |||
| 45 | # Set server verbosity to 'debug' | ||
| 46 | # it can be one of: | ||
| 47 | # debug (a lot of information, useful for development/testing) | ||
| 48 | # verbose (many rarely useful info, but not a mess like the debug level) | ||
| 49 | # notice (moderately verbose, what you want in production probably) | ||
| 50 | # warning (only very important / critical messages are logged) | ||
| 51 | loglevel notice | ||
| 52 | |||
| 53 | # Specify the log file name. Also 'stdout' can be used to force | ||
| 54 | # Redis to log on the standard output. Note that if you use standard | ||
| 55 | # output for logging but daemonize, logs will be sent to /dev/null | ||
| 56 | logfile /var/log/redis.log | ||
| 57 | |||
| 58 | # To enable logging to the system logger, just set 'syslog-enabled' to yes, | ||
| 59 | # and optionally update the other syslog parameters to suit your needs. | ||
| 60 | # syslog-enabled no | ||
| 61 | |||
| 62 | # Specify the syslog identity. | ||
| 63 | # syslog-ident redis | ||
| 64 | |||
| 65 | # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. | ||
| 66 | # syslog-facility local0 | ||
| 67 | |||
| 68 | # Set the number of databases. The default database is DB 0, you can select | ||
| 69 | # a different one on a per-connection basis using SELECT <dbid> where | ||
| 70 | # dbid is a number between 0 and 'databases'-1 | ||
| 71 | databases 16 | ||
| 72 | |||
| 73 | ################################ SNAPSHOTTING ################################# | ||
| 74 | # | ||
| 75 | # Save the DB on disk: | ||
| 76 | # | ||
| 77 | # save <seconds> <changes> | ||
| 78 | # | ||
| 79 | # Will save the DB if both the given number of seconds and the given | ||
| 80 | # number of write operations against the DB occurred. | ||
| 81 | # | ||
| 82 | # In the example below the behaviour will be to save: | ||
| 83 | # after 900 sec (15 min) if at least 1 key changed | ||
| 84 | # after 300 sec (5 min) if at least 10 keys changed | ||
| 85 | # after 60 sec if at least 10000 keys changed | ||
| 86 | # | ||
| 87 | # Note: you can disable saving at all commenting all the "save" lines. | ||
| 88 | # | ||
| 89 | # It is also possible to remove all the previously configured save | ||
| 90 | # points by adding a save directive with a single empty string argument | ||
| 91 | # like in the following example: | ||
| 92 | # | ||
| 93 | # save "" | ||
| 94 | |||
| 95 | #save 900 1 | ||
| 96 | #save 300 10 | ||
| 97 | #save 60 10000 | ||
| 98 | |||
| 99 | # OE: tune for a small embedded system with a limited # of keys. | ||
| 100 | save 120 1 | ||
| 101 | save 60 100 | ||
| 102 | save 30 1000 | ||
| 103 | |||
| 104 | # By default Redis will stop accepting writes if RDB snapshots are enabled | ||
| 105 | # (at least one save point) and the latest background save failed. | ||
| 106 | # This will make the user aware (in an hard way) that data is not persisting | ||
| 107 | # on disk properly, otherwise chances are that no one will notice and some | ||
| 108 | # distater will happen. | ||
| 109 | # | ||
| 110 | # If the background saving process will start working again Redis will | ||
| 111 | # automatically allow writes again. | ||
| 112 | # | ||
| 113 | # However if you have setup your proper monitoring of the Redis server | ||
| 114 | # and persistence, you may want to disable this feature so that Redis will | ||
| 115 | # continue to work as usually even if there are problems with disk, | ||
| 116 | # permissions, and so forth. | ||
| 117 | stop-writes-on-bgsave-error yes | ||
| 118 | |||
| 119 | # Compress string objects using LZF when dump .rdb databases? | ||
| 120 | # For default that's set to 'yes' as it's almost always a win. | ||
| 121 | # If you want to save some CPU in the saving child set it to 'no' but | ||
| 122 | # the dataset will likely be bigger if you have compressible values or keys. | ||
| 123 | rdbcompression yes | ||
| 124 | |||
| 125 | # Since verison 5 of RDB a CRC64 checksum is placed at the end of the file. | ||
| 126 | # This makes the format more resistant to corruption but there is a performance | ||
| 127 | # hit to pay (around 10%) when saving and loading RDB files, so you can disable it | ||
| 128 | # for maximum performances. | ||
| 129 | # | ||
| 130 | # RDB files created with checksum disabled have a checksum of zero that will | ||
| 131 | # tell the loading code to skip the check. | ||
| 132 | rdbchecksum yes | ||
| 133 | |||
| 134 | # The filename where to dump the DB | ||
| 135 | dbfilename dump.rdb | ||
| 136 | |||
| 137 | # The working directory. | ||
| 138 | # | ||
| 139 | # The DB will be written inside this directory, with the filename specified | ||
| 140 | # above using the 'dbfilename' configuration directive. | ||
| 141 | # | ||
| 142 | # Also the Append Only File will be created inside this directory. | ||
| 143 | # | ||
| 144 | # Note that you must specify a directory here, not a file name. | ||
| 145 | dir /var/lib/redis/ | ||
| 146 | |||
| 147 | ################################# REPLICATION ################################# | ||
| 148 | |||
| 149 | # Master-Slave replication. Use slaveof to make a Redis instance a copy of | ||
| 150 | # another Redis server. Note that the configuration is local to the slave | ||
| 151 | # so for example it is possible to configure the slave to save the DB with a | ||
| 152 | # different interval, or to listen to another port, and so on. | ||
| 153 | # | ||
| 154 | # slaveof <masterip> <masterport> | ||
| 155 | |||
| 156 | # If the master is password protected (using the "requirepass" configuration | ||
| 157 | # directive below) it is possible to tell the slave to authenticate before | ||
| 158 | # starting the replication synchronization process, otherwise the master will | ||
| 159 | # refuse the slave request. | ||
| 160 | # | ||
| 161 | # masterauth <master-password> | ||
| 162 | |||
| 163 | # When a slave lost the connection with the master, or when the replication | ||
| 164 | # is still in progress, the slave can act in two different ways: | ||
| 165 | # | ||
| 166 | # 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will | ||
| 167 | # still reply to client requests, possibly with out of date data, or the | ||
| 168 | # data set may just be empty if this is the first synchronization. | ||
| 169 | # | ||
| 170 | # 2) if slave-serve-stale data is set to 'no' the slave will reply with | ||
| 171 | # an error "SYNC with master in progress" to all the kind of commands | ||
| 172 | # but to INFO and SLAVEOF. | ||
| 173 | # | ||
| 174 | slave-serve-stale-data yes | ||
| 175 | |||
| 176 | # You can configure a slave instance to accept writes or not. Writing against | ||
| 177 | # a slave instance may be useful to store some ephemeral data (because data | ||
| 178 | # written on a slave will be easily deleted after resync with the master) but | ||
| 179 | # may also cause problems if clients are writing to it because of a | ||
| 180 | # misconfiguration. | ||
| 181 | # | ||
| 182 | # Since Redis 2.6 by default slaves are read-only. | ||
| 183 | # | ||
| 184 | # Note: read only slaves are not designed to be exposed to untrusted clients | ||
| 185 | # on the internet. It's just a protection layer against misuse of the instance. | ||
| 186 | # Still a read only slave exports by default all the administrative commands | ||
| 187 | # such as CONFIG, DEBUG, and so forth. To a limited extend you can improve | ||
| 188 | # security of read only slaves using 'rename-command' to shadow all the | ||
| 189 | # administrative / dangerous commands. | ||
| 190 | slave-read-only yes | ||
| 191 | |||
| 192 | # Slaves send PINGs to server in a predefined interval. It's possible to change | ||
| 193 | # this interval with the repl_ping_slave_period option. The default value is 10 | ||
| 194 | # seconds. | ||
| 195 | # | ||
| 196 | # repl-ping-slave-period 10 | ||
| 197 | |||
| 198 | # The following option sets a timeout for both Bulk transfer I/O timeout and | ||
| 199 | # master data or ping response timeout. The default value is 60 seconds. | ||
| 200 | # | ||
| 201 | # It is important to make sure that this value is greater than the value | ||
| 202 | # specified for repl-ping-slave-period otherwise a timeout will be detected | ||
| 203 | # every time there is low traffic between the master and the slave. | ||
| 204 | # | ||
| 205 | # repl-timeout 60 | ||
| 206 | |||
| 207 | # The slave priority is an integer number published by Redis in the INFO output. | ||
| 208 | # It is used by Redis Sentinel in order to select a slave to promote into a | ||
| 209 | # master if the master is no longer working correctly. | ||
| 210 | # | ||
| 211 | # A slave with a low priority number is considered better for promotion, so | ||
| 212 | # for instance if there are three slaves with priority 10, 100, 25 Sentinel will | ||
| 213 | # pick the one wtih priority 10, that is the lowest. | ||
| 214 | # | ||
| 215 | # However a special priority of 0 marks the slave as not able to perform the | ||
| 216 | # role of master, so a slave with priority of 0 will never be selected by | ||
| 217 | # Redis Sentinel for promotion. | ||
| 218 | # | ||
| 219 | # By default the priority is 100. | ||
| 220 | slave-priority 100 | ||
| 221 | |||
| 222 | ################################## SECURITY ################################### | ||
| 223 | |||
| 224 | # Require clients to issue AUTH <PASSWORD> before processing any other | ||
| 225 | # commands. This might be useful in environments in which you do not trust | ||
| 226 | # others with access to the host running redis-server. | ||
| 227 | # | ||
| 228 | # This should stay commented out for backward compatibility and because most | ||
| 229 | # people do not need auth (e.g. they run their own servers). | ||
| 230 | # | ||
| 231 | # Warning: since Redis is pretty fast an outside user can try up to | ||
| 232 | # 150k passwords per second against a good box. This means that you should | ||
| 233 | # use a very strong password otherwise it will be very easy to break. | ||
| 234 | # | ||
| 235 | # requirepass foobared | ||
| 236 | |||
| 237 | # Command renaming. | ||
| 238 | # | ||
| 239 | # It is possible to change the name of dangerous commands in a shared | ||
| 240 | # environment. For instance the CONFIG command may be renamed into something | ||
| 241 | # of hard to guess so that it will be still available for internal-use | ||
| 242 | # tools but not available for general clients. | ||
| 243 | # | ||
| 244 | # Example: | ||
| 245 | # | ||
| 246 | # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 | ||
| 247 | # | ||
| 248 | # It is also possible to completely kill a command renaming it into | ||
| 249 | # an empty string: | ||
| 250 | # | ||
| 251 | # rename-command CONFIG "" | ||
| 252 | |||
| 253 | ################################### LIMITS #################################### | ||
| 254 | |||
| 255 | # Set the max number of connected clients at the same time. By default | ||
| 256 | # this limit is set to 10000 clients, however if the Redis server is not | ||
| 257 | # able ot configure the process file limit to allow for the specified limit | ||
| 258 | # the max number of allowed clients is set to the current file limit | ||
| 259 | # minus 32 (as Redis reserves a few file descriptors for internal uses). | ||
| 260 | # | ||
| 261 | # Once the limit is reached Redis will close all the new connections sending | ||
| 262 | # an error 'max number of clients reached'. | ||
| 263 | # | ||
| 264 | # maxclients 10000 | ||
| 265 | |||
| 266 | # Don't use more memory than the specified amount of bytes. | ||
| 267 | # When the memory limit is reached Redis will try to remove keys | ||
| 268 | # accordingly to the eviction policy selected (see maxmemmory-policy). | ||
| 269 | # | ||
| 270 | # If Redis can't remove keys according to the policy, or if the policy is | ||
| 271 | # set to 'noeviction', Redis will start to reply with errors to commands | ||
| 272 | # that would use more memory, like SET, LPUSH, and so on, and will continue | ||
| 273 | # to reply to read-only commands like GET. | ||
| 274 | # | ||
| 275 | # This option is usually useful when using Redis as an LRU cache, or to set | ||
| 276 | # an hard memory limit for an instance (using the 'noeviction' policy). | ||
| 277 | # | ||
| 278 | # WARNING: If you have slaves attached to an instance with maxmemory on, | ||
| 279 | # the size of the output buffers needed to feed the slaves are subtracted | ||
| 280 | # from the used memory count, so that network problems / resyncs will | ||
| 281 | # not trigger a loop where keys are evicted, and in turn the output | ||
| 282 | # buffer of slaves is full with DELs of keys evicted triggering the deletion | ||
| 283 | # of more keys, and so forth until the database is completely emptied. | ||
| 284 | # | ||
| 285 | # In short... if you have slaves attached it is suggested that you set a lower | ||
| 286 | # limit for maxmemory so that there is some free RAM on the system for slave | ||
| 287 | # output buffers (but this is not needed if the policy is 'noeviction'). | ||
| 288 | # | ||
| 289 | # maxmemory <bytes> | ||
| 290 | |||
| 291 | # MAXMEMORY POLICY: how Redis will select what to remove when maxmemory | ||
| 292 | # is reached? You can select among five behavior: | ||
| 293 | # | ||
| 294 | # volatile-lru -> remove the key with an expire set using an LRU algorithm | ||
| 295 | # allkeys-lru -> remove any key accordingly to the LRU algorithm | ||
| 296 | # volatile-random -> remove a random key with an expire set | ||
| 297 | # allkeys-random -> remove a random key, any key | ||
| 298 | # volatile-ttl -> remove the key with the nearest expire time (minor TTL) | ||
| 299 | # noeviction -> don't expire at all, just return an error on write operations | ||
| 300 | # | ||
| 301 | # Note: with all the kind of policies, Redis will return an error on write | ||
| 302 | # operations, when there are not suitable keys for eviction. | ||
| 303 | # | ||
| 304 | # At the date of writing this commands are: set setnx setex append | ||
| 305 | # incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd | ||
| 306 | # sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby | ||
| 307 | # zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby | ||
| 308 | # getset mset msetnx exec sort | ||
| 309 | # | ||
| 310 | # The default is: | ||
| 311 | # | ||
| 312 | # maxmemory-policy volatile-lru | ||
| 313 | |||
| 314 | # LRU and minimal TTL algorithms are not precise algorithms but approximated | ||
| 315 | # algorithms (in order to save memory), so you can select as well the sample | ||
| 316 | # size to check. For instance for default Redis will check three keys and | ||
| 317 | # pick the one that was used less recently, you can change the sample size | ||
| 318 | # using the following configuration directive. | ||
| 319 | # | ||
| 320 | # maxmemory-samples 3 | ||
| 321 | |||
| 322 | ############################## APPEND ONLY MODE ############################### | ||
| 323 | |||
| 324 | # By default Redis asynchronously dumps the dataset on disk. This mode is | ||
| 325 | # good enough in many applications, but an issue with the Redis process or | ||
| 326 | # a power outage may result into a few minutes of writes lost (depending on | ||
| 327 | # the configured save points). | ||
| 328 | # | ||
| 329 | # The Append Only File is an alternative persistence mode that provides | ||
| 330 | # much better durability. For instance using the default data fsync policy | ||
| 331 | # (see later in the config file) Redis can lose just one second of writes in a | ||
| 332 | # dramatic event like a server power outage, or a single write if something | ||
| 333 | # wrong with the Redis process itself happens, but the operating system is | ||
| 334 | # still running correctly. | ||
| 335 | # | ||
| 336 | # AOF and RDB persistence can be enabled at the same time without problems. | ||
| 337 | # If the AOF is enabled on startup Redis will load the AOF, that is the file | ||
| 338 | # with the better durability guarantees. | ||
| 339 | # | ||
| 340 | # Please check http://redis.io/topics/persistence for more information. | ||
| 341 | |||
| 342 | # | ||
| 343 | # OE: changed default to enable this | ||
| 344 | appendonly yes | ||
| 345 | |||
| 346 | # The name of the append only file (default: "appendonly.aof") | ||
| 347 | # appendfilename appendonly.aof | ||
| 348 | |||
| 349 | # The fsync() call tells the Operating System to actually write data on disk | ||
| 350 | # instead to wait for more data in the output buffer. Some OS will really flush | ||
| 351 | # data on disk, some other OS will just try to do it ASAP. | ||
| 352 | # | ||
| 353 | # Redis supports three different modes: | ||
| 354 | # | ||
| 355 | # no: don't fsync, just let the OS flush the data when it wants. Faster. | ||
| 356 | # always: fsync after every write to the append only log . Slow, Safest. | ||
| 357 | # everysec: fsync only one time every second. Compromise. | ||
| 358 | # | ||
| 359 | # The default is "everysec" that's usually the right compromise between | ||
| 360 | # speed and data safety. It's up to you to understand if you can relax this to | ||
| 361 | # "no" that will let the operating system flush the output buffer when | ||
| 362 | # it wants, for better performances (but if you can live with the idea of | ||
| 363 | # some data loss consider the default persistence mode that's snapshotting), | ||
| 364 | # or on the contrary, use "always" that's very slow but a bit safer than | ||
| 365 | # everysec. | ||
| 366 | # | ||
| 367 | # More details please check the following article: | ||
| 368 | # http://antirez.com/post/redis-persistence-demystified.html | ||
| 369 | # | ||
| 370 | # If unsure, use "everysec". | ||
| 371 | |||
| 372 | # appendfsync always | ||
| 373 | appendfsync everysec | ||
| 374 | # appendfsync no | ||
| 375 | |||
| 376 | # When the AOF fsync policy is set to always or everysec, and a background | ||
| 377 | # saving process (a background save or AOF log background rewriting) is | ||
| 378 | # performing a lot of I/O against the disk, in some Linux configurations | ||
| 379 | # Redis may block too long on the fsync() call. Note that there is no fix for | ||
| 380 | # this currently, as even performing fsync in a different thread will block | ||
| 381 | # our synchronous write(2) call. | ||
| 382 | # | ||
| 383 | # In order to mitigate this problem it's possible to use the following option | ||
| 384 | # that will prevent fsync() from being called in the main process while a | ||
| 385 | # BGSAVE or BGREWRITEAOF is in progress. | ||
| 386 | # | ||
| 387 | # This means that while another child is saving the durability of Redis is | ||
| 388 | # the same as "appendfsync none", that in practical terms means that it is | ||
| 389 | # possible to lost up to 30 seconds of log in the worst scenario (with the | ||
| 390 | # default Linux settings). | ||
| 391 | # | ||
| 392 | # If you have latency problems turn this to "yes". Otherwise leave it as | ||
| 393 | # "no" that is the safest pick from the point of view of durability. | ||
| 394 | no-appendfsync-on-rewrite no | ||
| 395 | |||
| 396 | # Automatic rewrite of the append only file. | ||
| 397 | # Redis is able to automatically rewrite the log file implicitly calling | ||
| 398 | # BGREWRITEAOF when the AOF log size will growth by the specified percentage. | ||
| 399 | # | ||
| 400 | # This is how it works: Redis remembers the size of the AOF file after the | ||
| 401 | # latest rewrite (or if no rewrite happened since the restart, the size of | ||
| 402 | # the AOF at startup is used). | ||
| 403 | # | ||
| 404 | # This base size is compared to the current size. If the current size is | ||
| 405 | # bigger than the specified percentage, the rewrite is triggered. Also | ||
| 406 | # you need to specify a minimal size for the AOF file to be rewritten, this | ||
| 407 | # is useful to avoid rewriting the AOF file even if the percentage increase | ||
| 408 | # is reached but it is still pretty small. | ||
| 409 | # | ||
| 410 | # Specify a percentage of zero in order to disable the automatic AOF | ||
| 411 | # rewrite feature. | ||
| 412 | |||
| 413 | auto-aof-rewrite-percentage 100 | ||
| 414 | auto-aof-rewrite-min-size 64mb | ||
| 415 | |||
| 416 | ################################ LUA SCRIPTING ############################### | ||
| 417 | |||
| 418 | # Max execution time of a Lua script in milliseconds. | ||
| 419 | # | ||
| 420 | # If the maximum execution time is reached Redis will log that a script is | ||
| 421 | # still in execution after the maximum allowed time and will start to | ||
| 422 | # reply to queries with an error. | ||
| 423 | # | ||
| 424 | # When a long running script exceed the maximum execution time only the | ||
| 425 | # SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be | ||
| 426 | # used to stop a script that did not yet called write commands. The second | ||
| 427 | # is the only way to shut down the server in the case a write commands was | ||
| 428 | # already issue by the script but the user don't want to wait for the natural | ||
| 429 | # termination of the script. | ||
| 430 | # | ||
| 431 | # Set it to 0 or a negative value for unlimited execution without warnings. | ||
| 432 | lua-time-limit 5000 | ||
| 433 | |||
| 434 | ################################## SLOW LOG ################################### | ||
| 435 | |||
| 436 | # The Redis Slow Log is a system to log queries that exceeded a specified | ||
| 437 | # execution time. The execution time does not include the I/O operations | ||
| 438 | # like talking with the client, sending the reply and so forth, | ||
| 439 | # but just the time needed to actually execute the command (this is the only | ||
| 440 | # stage of command execution where the thread is blocked and can not serve | ||
| 441 | # other requests in the meantime). | ||
| 442 | # | ||
| 443 | # You can configure the slow log with two parameters: one tells Redis | ||
| 444 | # what is the execution time, in microseconds, to exceed in order for the | ||
| 445 | # command to get logged, and the other parameter is the length of the | ||
| 446 | # slow log. When a new command is logged the oldest one is removed from the | ||
| 447 | # queue of logged commands. | ||
| 448 | |||
| 449 | # The following time is expressed in microseconds, so 1000000 is equivalent | ||
| 450 | # to one second. Note that a negative number disables the slow log, while | ||
| 451 | # a value of zero forces the logging of every command. | ||
| 452 | slowlog-log-slower-than 10000 | ||
| 453 | |||
| 454 | # There is no limit to this length. Just be aware that it will consume memory. | ||
| 455 | # You can reclaim memory used by the slow log with SLOWLOG RESET. | ||
| 456 | slowlog-max-len 128 | ||
| 457 | |||
| 458 | ############################### ADVANCED CONFIG ############################### | ||
| 459 | |||
| 460 | # Hashes are encoded using a memory efficient data structure when they have a | ||
| 461 | # small number of entries, and the biggest entry does not exceed a given | ||
| 462 | # threshold. These thresholds can be configured using the following directives. | ||
| 463 | hash-max-ziplist-entries 512 | ||
| 464 | hash-max-ziplist-value 64 | ||
| 465 | |||
| 466 | # Similarly to hashes, small lists are also encoded in a special way in order | ||
| 467 | # to save a lot of space. The special representation is only used when | ||
| 468 | # you are under the following limits: | ||
| 469 | list-max-ziplist-entries 512 | ||
| 470 | list-max-ziplist-value 64 | ||
| 471 | |||
| 472 | # Sets have a special encoding in just one case: when a set is composed | ||
| 473 | # of just strings that happens to be integers in radix 10 in the range | ||
| 474 | # of 64 bit signed integers. | ||
| 475 | # The following configuration setting sets the limit in the size of the | ||
| 476 | # set in order to use this special memory saving encoding. | ||
| 477 | set-max-intset-entries 512 | ||
| 478 | |||
| 479 | # Similarly to hashes and lists, sorted sets are also specially encoded in | ||
| 480 | # order to save a lot of space. This encoding is only used when the length and | ||
| 481 | # elements of a sorted set are below the following limits: | ||
| 482 | zset-max-ziplist-entries 128 | ||
| 483 | zset-max-ziplist-value 64 | ||
| 484 | |||
| 485 | # Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in | ||
| 486 | # order to help rehashing the main Redis hash table (the one mapping top-level | ||
| 487 | # keys to values). The hash table implementation Redis uses (see dict.c) | ||
| 488 | # performs a lazy rehashing: the more operation you run into an hash table | ||
| 489 | # that is rehashing, the more rehashing "steps" are performed, so if the | ||
| 490 | # server is idle the rehashing is never complete and some more memory is used | ||
| 491 | # by the hash table. | ||
| 492 | # | ||
| 493 | # The default is to use this millisecond 10 times every second in order to | ||
| 494 | # active rehashing the main dictionaries, freeing memory when possible. | ||
| 495 | # | ||
| 496 | # If unsure: | ||
| 497 | # use "activerehashing no" if you have hard latency requirements and it is | ||
| 498 | # not a good thing in your environment that Redis can reply form time to time | ||
| 499 | # to queries with 2 milliseconds delay. | ||
| 500 | # | ||
| 501 | # use "activerehashing yes" if you don't have such hard requirements but | ||
| 502 | # want to free memory asap when possible. | ||
| 503 | activerehashing yes | ||
| 504 | |||
| 505 | # The client output buffer limits can be used to force disconnection of clients | ||
| 506 | # that are not reading data from the server fast enough for some reason (a | ||
| 507 | # common reason is that a Pub/Sub client can't consume messages as fast as the | ||
| 508 | # publisher can produce them). | ||
| 509 | # | ||
| 510 | # The limit can be set differently for the three different classes of clients: | ||
| 511 | # | ||
| 512 | # normal -> normal clients | ||
| 513 | # slave -> slave clients and MONITOR clients | ||
| 514 | # pubsub -> clients subcribed to at least one pubsub channel or pattern | ||
| 515 | # | ||
| 516 | # The syntax of every client-output-buffer-limit directive is the following: | ||
| 517 | # | ||
| 518 | # client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds> | ||
| 519 | # | ||
| 520 | # A client is immediately disconnected once the hard limit is reached, or if | ||
| 521 | # the soft limit is reached and remains reached for the specified number of | ||
| 522 | # seconds (continuously). | ||
| 523 | # So for instance if the hard limit is 32 megabytes and the soft limit is | ||
| 524 | # 16 megabytes / 10 seconds, the client will get disconnected immediately | ||
| 525 | # if the size of the output buffers reach 32 megabytes, but will also get | ||
| 526 | # disconnected if the client reaches 16 megabytes and continuously overcomes | ||
| 527 | # the limit for 10 seconds. | ||
| 528 | # | ||
| 529 | # By default normal clients are not limited because they don't receive data | ||
| 530 | # without asking (in a push way), but just after a request, so only | ||
| 531 | # asynchronous clients may create a scenario where data is requested faster | ||
| 532 | # than it can read. | ||
| 533 | # | ||
| 534 | # Instead there is a default limit for pubsub and slave clients, since | ||
| 535 | # subscribers and slaves receive data in a push fashion. | ||
| 536 | # | ||
| 537 | # Both the hard or the soft limit can be disabled just setting it to zero. | ||
| 538 | client-output-buffer-limit normal 0 0 0 | ||
| 539 | client-output-buffer-limit slave 256mb 64mb 60 | ||
| 540 | client-output-buffer-limit pubsub 32mb 8mb 60 | ||
| 541 | |||
| 542 | ################################## INCLUDES ################################### | ||
| 543 | |||
| 544 | # Include one or more other config files here. This is useful if you | ||
| 545 | # have a standard template that goes to all Redis server but also need | ||
| 546 | # to customize a few per-server settings. Include files can include | ||
| 547 | # other files, so use this wisely. | ||
| 548 | # | ||
| 549 | # include /path/to/local.conf | ||
| 550 | # include /path/to/other.conf | ||
diff --git a/meta-oe/recipes-extended/redis/redis_2.6.9.bb b/meta-oe/recipes-extended/redis/redis_2.6.9.bb new file mode 100644 index 0000000000..f6818ee512 --- /dev/null +++ b/meta-oe/recipes-extended/redis/redis_2.6.9.bb | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | SUMMARY = "Redis key-value store" | ||
| 2 | DESCRIPTION = "Redis is an open source, advanced key-value store." | ||
| 3 | HOMEPAGE = "http://redis.io" | ||
| 4 | SECTION = "libs" | ||
| 5 | LICENSE = "BSD" | ||
| 6 | LIC_FILES_CHKSUM="file://COPYING;md5=673e0ac66aac758f8f2140c6fc7947d2" | ||
| 7 | |||
| 8 | SRC_URI = "http://redis.googlecode.com/files/redis-${PV}.tar.gz \ | ||
| 9 | file://hiredis-use-default-CC-if-it-is-set.patch \ | ||
| 10 | file://lua-update-Makefile-to-use-environment-build-setting.patch \ | ||
| 11 | file://oe-use-libc-malloc.patch \ | ||
| 12 | file://redis.conf \ | ||
| 13 | file://init-redis-server \ | ||
| 14 | " | ||
| 15 | |||
| 16 | inherit update-rc.d | ||
| 17 | |||
| 18 | INITSCRIPT_NAME = "redis-server" | ||
| 19 | INITSCRIPT_PARAMS = "defaults 87" | ||
| 20 | |||
| 21 | SRC_URI[md5sum] = "5093fb7c5f763e828c857daf260665bc" | ||
| 22 | SRC_URI[sha256sum] = "4d967eff2038aebea33875d17e85ed67179df6505df68529a622f7836d1c7489" | ||
| 23 | |||
| 24 | do_install() { | ||
| 25 | export PREFIX=${D}/${prefix} | ||
| 26 | oe_runmake install | ||
| 27 | |||
| 28 | install -d ${D}/${sysconfdir}/redis | ||
| 29 | install -m 0755 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf | ||
| 30 | |||
| 31 | install -d ${D}/${sysconfdir}/init.d | ||
| 32 | install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server | ||
| 33 | |||
| 34 | install -d ${D}/var/lib/redis/ | ||
| 35 | } | ||
| 36 | |||
