summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-03-06 12:46:57 +0000
committerCoprDistGit <infra@openeuler.org>2025-03-06 12:46:57 +0000
commiteb096e1a97e3061ec76e07491aaab5a52c544456 (patch)
tree06bbe5964afaeeff7c0d44b0e7861e70dd579a32
parent618ff6ef2dd80424240ebfce5d100a6f836a2524 (diff)
automatic import of redisopeneuler24.03_LTS_SP1
-rw-r--r--.gitignore2
-rw-r--r--0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch652
-rw-r--r--macros.redis2
-rw-r--r--redis-limit-systemd14
-rw-r--r--redis-sentinel.service17
-rw-r--r--redis.logrotate9
-rw-r--r--redis.service17
-rw-r--r--redis.spec275
-rw-r--r--sources2
9 files changed, 990 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..079900b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/redis-7.2.7.tar.gz
+/redis-doc-3541d0e.tar.gz
diff --git a/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch b/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch
new file mode 100644
index 0000000..577d3e7
--- /dev/null
+++ b/0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch
@@ -0,0 +1,652 @@
+From d68953c34d4d6987883ddf6158c3c69e7500667f Mon Sep 17 00:00:00 2001
+From: Remi Collet <fedora@famillecollet.com>
+Date: Thu, 8 Sep 2016 14:51:15 +0200
+Subject: [PATCH 1/3] 1st man pageis for - redis-cli - redis-benchmark -
+ redis-check-aof - redis-check-rdb - redis-server - redis.conf
+
+as redis-sentinel is a symlink to redis-server, same page can be used (also symlinked)
+redis.conf can also be used for sentinel.conf
+---
+ man/man1/redis-benchmark.1 | 132 ++++++++++++++++++++++++++++
+ man/man1/redis-check-aof.1 | 60 +++++++++++++
+ man/man1/redis-check-rdb.1 | 53 ++++++++++++
+ man/man1/redis-cli.1 | 171 +++++++++++++++++++++++++++++++++++++
+ man/man1/redis-server.1 | 117 +++++++++++++++++++++++++
+ man/man5/redis.conf.5 | 57 +++++++++++++
+ 6 files changed, 590 insertions(+)
+ create mode 100644 man/man1/redis-benchmark.1
+ create mode 100644 man/man1/redis-check-aof.1
+ create mode 100644 man/man1/redis-check-rdb.1
+ create mode 100644 man/man1/redis-cli.1
+ create mode 100644 man/man1/redis-server.1
+ create mode 100644 man/man5/redis.conf.5
+
+diff --git a/man/man1/redis-benchmark.1 b/man/man1/redis-benchmark.1
+new file mode 100644
+index 0000000..a3e4c62
+--- /dev/null
++++ b/man/man1/redis-benchmark.1
+@@ -0,0 +1,132 @@
++.TH REDIS-BENCHMARK 1 "2016" "Redis" "User commands"
++.SH NAME
++redis\-benchmark \- Redis benchmark
++
++.SH SYNOPSIS
++.B redis\-benchmark
++[ options ]
++.LP
++
++.SH DESCRIPTION
++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store,
++used as database, cache and message broker, found at
++.B http://redis.io/
++
++The \fBredis\-benchmark\fP command is a command to benchmark redis-server.
++
++.SH OPTIONS
++.TP 15
++.B \-h \fIhostname\fP
++Server hostname (default: 127.0.0.1).
++.TP
++.B \-p \fIport\fP
++Server port (default: 6379).
++.TP
++.B \-s \fIsocket\fP
++Server socket (overrides hostname and port).
++.TP
++.B \-a \fIpassword\fP
++Password to use when connecting to the server.
++.TP
++.B \-c \fIclients\fP
++Number of parallel connections (default 50)
++.TP
++.B \-dnnum \fIdb\fP
++SELECT the specified db number (default 0)
++.TP
++.B \-k \fIboolean\fP
++1=keep alive 0=reconnect (default 1)
++.TP
++.B \-r \fIkeyspacelen\fP
++Use random keys for SET/GET/INCR, random values for SADD
++Using this option the benchmark will expand the string __rand_int__
++inside an argument with a 12 digits number in the specified range
++from 0 to keyspacelen-1. The substitution changes every time a command
++is executed. Default tests use this to hit random keys in the
++specified range.
++.TP
++.B \-P \fInumreq\fP
++Pipeline <numreq> requests. Default 1 (no pipeline).
++.TP
++.B \-e
++If server replies with errors, show them on stdout.
++(no more than 1 error per second is displayed)
++.TP
++.B \-q
++Quiet. Just show query/sec values
++.TP
++.B \-\-csv
++Output in CSV format
++.TP
++.B \-l
++Loop. Run the tests forever
++.TP
++.B \-t \fItests\fP
++Only run the comma separated list of tests. The test
++names are the same as the ones produced as output.
++.TP
++.B \-I
++Idle mode. Just open N idle connections and wait.
++
++.SH EXAMPLES
++.TP 5
++Run the benchmark with the default configuration against 127.0.0.1:6379:
++$ redis\-benchmark
++.TP
++Use 20 parallel clients, for a total of 100k requests, against 192.168.1.1:
++$ redis-benchmark \-h 192.168.1.1 \-p 6379 \-n 100000 \-c 20
++.TP
++Fill 127.0.0.1:6379 with about 1 million keys only using the SET test:
++$ redis\-benchmark \-t set \-n 1000000 \-r 100000000
++.TP
++Benchmark 127.0.0.1:6379 for a few commands producing CSV output:
++$ redis\-benchmark \-t ping,set,get \-n 100000 \-\-csv
++.TP
++Benchmark a specific command line:
++$ redis\-benchmark \-r 10000 \-n 10000 eval 'return redis.call("ping")' 0
++.TP
++Fill a list with 10000 random elements:
++$ redis\-benchmark \-r 10000 \-n 10000 lpush mylist __rand_int__
++.TP
++On user specified command lines __rand_int__ is replaced with a random integer
++with a range of values selected by the -r option.
++
++
++.SH BUGS
++See:
++.PD 0
++.B http://redis.io/support
++and
++.B https://github.com/antirez/redis/issues
++
++.SH COPYRIGHT
++Copyright \(co 2006\-2016
++Salvatore Sanfilippo
++.P
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++.TP 2
++*
++Redistributions of source code must retain the above copyright notice,
++this list of conditions and the following disclaimer.
++.TP
++*
++Redistributions in binary form must reproduce the above copyright
++notice, this list of conditions and the following disclaimer in the
++documentation and/or other materials provided with the distribution.
++.TP
++*
++Neither the name of Redis nor the names of its contributors may be used
++to endorse or promote products derived from this software without specific
++prior written permission.
++.P
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff --git a/man/man1/redis-check-aof.1 b/man/man1/redis-check-aof.1
+new file mode 100644
+index 0000000..1569fd9
+--- /dev/null
++++ b/man/man1/redis-check-aof.1
+@@ -0,0 +1,60 @@
++.TH REDIS-CHECK-AOF 1 "2016" "Redis" "User commands"
++.SH NAME
++redis\-check\-aof \- Redis AOF file checker and repairer
++
++.SH SYNOPSIS
++.B redis\-check\-aof
++[\-\-fix]
++.IR file.aof
++
++.SH DESCRIPTION
++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store,
++used as database, cache and message broker, found at
++.B http://redis.io/
++
++The \fBredis\-check\-aof\fP command to check or repair redis-server AOF files.
++
++.SH OPTIONS
++.TP 15
++.B \-\-fix
++Fix the file
++
++
++.SH BUGS
++See:
++.PD 0
++.B http://redis.io/support
++and
++.B https://github.com/antirez/redis/issues
++
++.SH COPYRIGHT
++Copyright \(co 2006\-2016
++Salvatore Sanfilippo
++.P
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++.TP 2
++*
++Redistributions of source code must retain the above copyright notice,
++this list of conditions and the following disclaimer.
++.TP
++*
++Redistributions in binary form must reproduce the above copyright
++notice, this list of conditions and the following disclaimer in the
++documentation and/or other materials provided with the distribution.
++.TP
++*
++Neither the name of Redis nor the names of its contributors may be used
++to endorse or promote products derived from this software without specific
++prior written permission.
++.P
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff --git a/man/man1/redis-check-rdb.1 b/man/man1/redis-check-rdb.1
+new file mode 100644
+index 0000000..0e798ab
+--- /dev/null
++++ b/man/man1/redis-check-rdb.1
+@@ -0,0 +1,53 @@
++.TH REDIS-CHECK-RDB 1 "2016" "Redis" "User commands"
++.SH NAME
++redis\-check\-aof \- Redis RDB file checker
++
++.SH SYNOPSIS
++.B redis\-check\-aof
++.IR file.rdb
++
++.SH DESCRIPTION
++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store,
++used as database, cache and message broker, found at
++.B http://redis.io/
++
++The \fBredis\-check\-rdb\fP command to check redis-server RDB files.
++
++.SH BUGS
++See:
++.PD 0
++.B http://redis.io/support
++and
++.B https://github.com/antirez/redis/issues
++
++.SH COPYRIGHT
++Copyright \(co 2006\-2016
++Salvatore Sanfilippo
++.P
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++.TP 2
++*
++Redistributions of source code must retain the above copyright notice,
++this list of conditions and the following disclaimer.
++.TP
++*
++Redistributions in binary form must reproduce the above copyright
++notice, this list of conditions and the following disclaimer in the
++documentation and/or other materials provided with the distribution.
++.TP
++*
++Neither the name of Redis nor the names of its contributors may be used
++to endorse or promote products derived from this software without specific
++prior written permission.
++.P
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff --git a/man/man1/redis-cli.1 b/man/man1/redis-cli.1
+new file mode 100644
+index 0000000..14f84df
+--- /dev/null
++++ b/man/man1/redis-cli.1
+@@ -0,0 +1,171 @@
++.TH REDIS-CLI 1 "2016" "Redis" "User commands"
++.SH NAME
++redis\-cli \- Redis client
++
++.SH SYNOPSIS
++.B redis\-cli
++[ options ] [cmd [arg [arg ...]]]
++.LP
++
++.SH DESCRIPTION
++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store,
++used as database, cache and message broker, found at
++.B http://redis.io/
++
++The \fBredis-cli\fP command is a command line client to redis-server.
++
++.SH OPTIONS
++.TP 15
++.B \-h \fIhostname\fP
++Server hostname (default: 127.0.0.1).
++.TP
++.B \-p \fIport\fP
++Server port (default: 6379).
++.TP
++.B \-s \fIsocket\fP
++Server socket (overrides hostname and port).
++.TP
++.B \-a \fIpassword\fP
++Password to use when connecting to the server.
++.TP
++.B \-r \fIrepeat\fP
++Execute specified command N times.
++.TP
++.B \-i \fIinterval\fP
++When -r is used, waits \fIinterval\fP seconds per command.
++It is possible to specify sub-second times like -i 0.1.
++.TP
++.B \-n \fIdb\fP
++Database number.
++.TP
++.B \-x
++Read last argument from STDIN.
++.TP
++.B \-d \fIdelimiter\fP
++Multi-bulk delimiter in for raw formatting (default: \n).
++.TP
++.B \-c
++Enable cluster mode (follow -ASK and -MOVED redirections).
++.TP
++.B \-\-raw
++Use raw formatting for replies (default when STDOUT is not a tty).
++.TP
++.B \-\-no\-raw
++Force formatted output even when STDOUT is not a tty.
++.TP
++.B \-\-csv
++Output in CSV format.
++.TP
++.B \-\-stat
++Print rolling stats about server: mem, clients, ...
++.TP
++.B \-\-latency
++Enter a special mode continuously sampling latency.
++.TP
++.B \-\-latency\-history
++Like \-\-latency but tracking latency changes over time.
++Default time interval is 15 sec. Change it using -i.
++.TP
++.B \-\-latency\-dist
++Shows latency as a spectrum, requires xterm 256 colors.
++Default time interval is 1 sec. Change it using -i.
++.TP
++.B \-\-lru\-test
++Simulate a cache workload with an 80-20 distribution.
++.TP
++.B \-\-slave
++Simulate a slave showing commands received from the master.
++.TP
++.B \-\-rdb \fIfilename\fP
++Transfer an RDB dump from remote server to local file.
++.TP
++.B \-\-pipe
++Transfer raw Redis protocol from stdin to server.
++.TP
++.B \-\-pipe-timeout \fIn\fP
++In --pipe mode, abort with error if after sending all data.
++no reply is received within \fIn\fP seconds.
++Default timeout: 30. Use 0 to wait forever.
++.TP
++.B \-\-bigkeys
++Sample Redis keys looking for big keys.
++.TP
++.B \-\-scan
++List all keys using the SCAN command.
++.TP
++.B \-\-pattern \fIpat\fP
++Useful with --scan to specify a SCAN pattern.
++.TP
++.B \-\-intrinsic-latency \fIsec\fP
++Run a test to measure intrinsic system latency.
++The test will run for the specified amount of seconds.
++.TP
++.B \-\-eval \fIfile\fP
++Send an EVAL command using the Lua script at \fIfile\fP.
++.TP
++.B \-\-ldb
++Used with --eval enable the Redis Lua debugger.
++.TP
++.B \-\-ldb-sync-mode
++Like --ldb but uses the synchronous Lua debugger, in
++this mode the server is blocked and script changes are
++are not rolled back from the server memory.
++.TP
++.B \-\-help
++Output this help and exit.
++.TP
++.B \-\-version
++Output version and exit.
++
++.SH EXAMPLES
++.TP
++cat /etc/passwd | redis-cli -x set mypasswd
++.TP
++redis-cli get mypasswd
++.TP
++redis-cli \-r 100 lpush mylist x
++.TP
++redis-cli \-r 100 \-i 1 info | grep used_memory_human:
++.TP
++redis-cli \-\-eval myscript.lua key1 key2 , arg1 arg2 arg3
++.TP
++redis-cli \-\-scan \-\-pattern '*:12345*'
++
++.SH BUGS
++See:
++.PD 0
++.B http://redis.io/support
++and
++.B https://github.com/antirez/redis/issues
++
++.SH COPYRIGHT
++Copyright \(co 2006\-2016
++Salvatore Sanfilippo
++.P
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++.TP 2
++*
++Redistributions of source code must retain the above copyright notice,
++this list of conditions and the following disclaimer.
++.TP
++*
++Redistributions in binary form must reproduce the above copyright
++notice, this list of conditions and the following disclaimer in the
++documentation and/or other materials provided with the distribution.
++.TP
++*
++Neither the name of Redis nor the names of its contributors may be used
++to endorse or promote products derived from this software without specific
++prior written permission.
++.P
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff --git a/man/man1/redis-server.1 b/man/man1/redis-server.1
+new file mode 100644
+index 0000000..d6edd25
+--- /dev/null
++++ b/man/man1/redis-server.1
+@@ -0,0 +1,117 @@
++.TH REDIS-SERVER 1 "2016" "Redis" "User commands"
++.SH NAME
++redis\-server, redis\-sentinel \- Redis server
++
++.SH SYNOPSIS
++.B redis\-server
++[
++.IR configuration_file
++] [ options ] [ \-\-sentinel ]
++.LP
++.B redis\-sentinel
++[
++.IR configuration_file
++] [ options ]
++
++
++.SH DESCRIPTION
++\fBRedis\fP is an open source (BSD licensed), in-memory data structure store,
++used as database, cache and message broker, found at
++.B http://redis.io/
++.LP
++The \fBredis\-server\fP command is a command line to launch a Redis server.
++.LP
++The \fBredis\-sentinel\fP command is a symbolic link to the \fBredis\-server\fP
++command which imply the \fB\-\-sentionel\fP option.
++
++.SH OPTIONS
++.TP 15
++.B \-
++Read configuration from stdin.
++.TP
++.TP 15
++.B \-\-sentinel
++Run in sentinel mode
++.TP
++.B \-\-test-memory \fImegabytes\fP
++Run a memory check and exit.
++.TP
++.PD 0
++.B \-\-help
++.TP
++.PD 1
++.B \-h
++Output this help and exit.
++.TP
++.PD 0
++.B \-\-version
++.TP
++.PD 1
++.B \-v
++Output version and exit.
++.P
++All parameters described in \fBredis.conf\fR file can be passed as
++command line option, e.g.
++.B \-\-port
++.IR port
++.
++
++.SH EXAMPLES
++.TP 5
++Run the server with default conf
++redis-server
++.TP
++Run the server with a configuration file
++redis-server /etc/6379.conf
++.TP
++Run the server changing some default options
++redis-server --port 7777 --slaveof 127.0.0.1 8888
++.TP
++Run the server with a configuration file and changing some options
++redis-server /etc/myredis.conf --loglevel verbose
++.TP
++Run in sentinel mode
++redis-server /etc/redis-sentinel.conf --sentinel
++
++.SH "SEE ALSO"
++.PP
++\fBredis.conf\fR(5)
++
++.SH BUGS
++See:
++.PD 0
++.B http://redis.io/support
++and
++.B https://github.com/antirez/redis/issues
++
++.SH COPYRIGHT
++Copyright \(co 2006\-2016
++Salvatore Sanfilippo
++.P
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++.TP 2
++*
++Redistributions of source code must retain the above copyright notice,
++this list of conditions and the following disclaimer.
++.TP
++*
++Redistributions in binary form must reproduce the above copyright
++notice, this list of conditions and the following disclaimer in the
++documentation and/or other materials provided with the distribution.
++.TP
++*
++Neither the name of Redis nor the names of its contributors may be used
++to endorse or promote products derived from this software without specific
++prior written permission.
++.P
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+diff --git a/man/man5/redis.conf.5 b/man/man5/redis.conf.5
+new file mode 100644
+index 0000000..1e0c9c9
+--- /dev/null
++++ b/man/man5/redis.conf.5
+@@ -0,0 +1,57 @@
++.TH REDIS.CONF 5 "2016" "Redis" "Configuration files"
++.SH NAME
++redis.conf, sentinel.conf - redis server configuration files.
++
++.SH PARAMETERS
++.TP
++All empty lines or lines beginning with '#' are ignored.
++.TP
++See inline comments for parameters description.
++
++.SH DESCRIPTION
++.TP
++\fBredis-server\fP read the configuration file passed as first argument.
++
++.SH "SEE ALSO"
++.PP
++\fBredis\-server\fR(1)
++
++
++.SH BUGS
++See:
++.PD 0
++.B http://redis.io/support
++and
++.B https://github.com/antirez/redis/issues
++
++.SH COPYRIGHT
++Copyright \(co 2006\-2016
++Salvatore Sanfilippo
++.P
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions are met:
++.TP 2
++*
++Redistributions of source code must retain the above copyright notice,
++this list of conditions and the following disclaimer.
++.TP
++*
++Redistributions in binary form must reproduce the above copyright
++notice, this list of conditions and the following disclaimer in the
++documentation and/or other materials provided with the distribution.
++.TP
++*
++Neither the name of Redis nor the names of its contributors may be used
++to endorse or promote products derived from this software without specific
++prior written permission.
++.P
++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
++ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--
+2.24.1
+
diff --git a/macros.redis b/macros.redis
new file mode 100644
index 0000000..439cc2c
--- /dev/null
+++ b/macros.redis
@@ -0,0 +1,2 @@
+%redis_modules_abi 1
+%redis_modules_dir %{_libdir}/redis/modules
diff --git a/redis-limit-systemd b/redis-limit-systemd
new file mode 100644
index 0000000..a792937
--- /dev/null
+++ b/redis-limit-systemd
@@ -0,0 +1,14 @@
+# If you need to change max open file limit
+# for example, when you change maxclient in configuration
+# you can change the LimitNOFILE value below.
+# See "man systemd.exec" for more information.
+
+# Slave nodes on large system may take lot of time to start.
+# You may need to uncomment TimeoutStartSec and TimeoutStopSec
+# directives below and raise their value.
+# See "man systemd.service" for more information.
+
+[Service]
+LimitNOFILE=10240
+#TimeoutStartSec=90s
+#TimeoutStopSec=90s
diff --git a/redis-sentinel.service b/redis-sentinel.service
new file mode 100644
index 0000000..c7ed396
--- /dev/null
+++ b/redis-sentinel.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Redis Sentinel
+After=network.target
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/redis-sentinel /etc/redis-sentinel.conf --daemonize no --supervised systemd
+Type=notify
+User=redis
+Group=redis
+RuntimeDirectory=redis
+RuntimeDirectoryMode=0755
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/redis.logrotate b/redis.logrotate
new file mode 100644
index 0000000..3a3d185
--- /dev/null
+++ b/redis.logrotate
@@ -0,0 +1,9 @@
+/var/log/redis/*.log {
+ weekly
+ rotate 10
+ copytruncate
+ delaycompress
+ compress
+ notifempty
+ missingok
+}
diff --git a/redis.service b/redis.service
new file mode 100644
index 0000000..d443c54
--- /dev/null
+++ b/redis.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Redis persistent key-value database
+After=network.target
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/redis-server /etc/redis.conf --daemonize no --supervised systemd
+Type=notify
+User=redis
+Group=redis
+RuntimeDirectory=redis
+RuntimeDirectoryMode=0755
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/redis.spec b/redis.spec
new file mode 100644
index 0000000..c6df171
--- /dev/null
+++ b/redis.spec
@@ -0,0 +1,275 @@
+# Commit IDs for the (unversioned) redis-doc repository
+# https://fedoraproject.org/wiki/Packaging:SourceURL "Commit Revision"
+%global doc_commit 3541d0e20cc4bb7873bdbf51a7717757b806577f
+%global short_doc_commit %(c=%{doc_commit}; echo ${c:0:7})
+
+%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
+
+Name: redis
+Version: 7.2.7
+Release: 1
+Summary: A persistent key-value database
+# redis, hiredis: BSD-3-Clause
+# hdrhistogram, jemalloc, lzf, linenoise: BSD-2-Clause
+# lua: MIT
+# fpconv: BSL-1.0
+License: BSD-3-Clause AND BSD-2-Clause AND MIT AND BSL-1.0 AND CC-BY-SA-4.0
+URL: https://redis.io
+Source0: http://download.redis.io/releases/%{name}-%{version}.tar.gz
+Source1: %{name}.logrotate
+Source2: %{name}-sentinel.service
+Source3: %{name}.service
+Source4: %{name}-limit-systemd
+Source5: macros.%{name}
+Source6: https://github.com/%{name}/%{name}-doc/archive/%{doc_commit}/%{name}-doc-%{short_doc_commit}.tar.gz
+# https://github.com/redis/redis/pull/3491 - man pages
+Patch0001: 0001-1st-man-pageis-for-redis-cli-redis-benchmark-redis-c.patch
+
+BuildRequires: systemd
+BuildRequires: systemd-devel
+BuildRequires: gcc
+BuildRequires: make
+BuildRequires: openssl-devel
+Requires: /bin/awk
+Requires: logrotate
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+
+%global redis_modules_abi 1
+%global redis_modules_dir %{_libdir}/%{name}/modules
+Provides: redis(modules_abi)%{?_isa} = %{redis_modules_abi}
+
+%description
+Redis is an advanced key-value store. It is often referred to as a dattructure server since keys can contain strings, hashes
+,lists, sets anorted sets.
+
+%prep
+%setup -q -n %{name}-%{version} -b 6
+mv ../%{name}-doc-%{doc_commit} doc
+%patch -P0001 -p1
+
+mv deps/lua/COPYRIGHT COPYRIGHT-lua
+mv deps/jemalloc/COPYING COPYING-jemalloc
+mv deps/hiredis/COPYING COPYING-hiredis
+mv deps/hdr_histogram/LICENSE.txt LICENSE-hdrhistogram
+mv deps/hdr_histogram/COPYING.txt COPYING-hdrhistogram
+mv deps/fpconv/LICENSE.txt LICENSE-fpconv
+
+# Configuration file changes
+sed -i -e 's|^logfile .*$|logfile /var/log/redis/redis.log|g' redis.conf
+sed -i -e 's|^logfile .*$|logfile /var/log/redis/sentinel.log|g' sentinel.conf
+sed -i -e 's|^dir .*$|dir /var/lib/redis|g' redis.conf
+
+# See https://bugzilla.redhat.com/2240293
+# See https://src.fedoraproject.org/rpms/jemalloc/blob/rawhide/f/jemalloc.spec#_34
+%ifarch %ix86 %arm x86_64 s390x
+sed -e 's/--with-lg-quantum/--with-lg-page=12 --with-lg-quantum/' -i deps/Makefile
+%endif
+%ifarch ppc64 ppc64le aarch64
+sed -e 's/--with-lg-quantum/--with-lg-page=16 --with-lg-quantum/' -i deps/Makefile
+%endif
+
+# Module API version safety check
+api=`sed -n -e 's/#define REDISMODULE_APIVER_[0-9][0-9]* //p' src/redismodule.h`
+if test "$api" != "%{redis_modules_abi}"; then
+ : Error: Upstream API version is now ${api}, expecting %%{redis_modules_abi}.
+ : Update the redis_modules_abi macro, the rpmmacros file, and rebuild.
+ exit 1
+fi
+
+%global make_flags DEBUG="" V="echo" LDFLAGS="%{?__global_ldflags}" CFLAGS+="%{optflags} -fPIC" INSTALL="install -p" PREFIX=%{buildroot}%{_prefix} BUILD_WITH_SYSTEMD=yes BUILD_TLS=yes
+
+%build
+%make_build %{make_flags} all
+
+%install
+make %{make_flags} install
+
+# Filesystem.
+install -d %{buildroot}%{_sharedstatedir}/%{name}
+install -d %{buildroot}%{_localstatedir}/log/%{name}
+install -d %{buildroot}%{_localstatedir}/run/%{name}
+install -d %{buildroot}%{_libdir}/%{name}/modules
+
+# Install logrotate file.
+install -pDm644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
+
+# Install systemd unit files.
+mkdir -p %{buildroot}%{_unitdir}
+install -pm644 %{SOURCE2} %{buildroot}%{_unitdir}
+install -pm644 %{SOURCE3} %{buildroot}%{_unitdir}
+
+# Install configuration files.
+install -pDm640 %{name}.conf %{buildroot}%{_sysconfdir}/%{name}.conf
+install -pDm640 sentinel.conf %{buildroot}%{_sysconfdir}/%{name}-sentinel.conf
+
+# Install systemd limit files (requires systemd >= 204)
+install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf
+install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/systemd/system/%{name}-sentinel.service.d/limit.conf
+
+# Fix non-standard-executable-perm error.
+chmod 755 %{buildroot}%{_bindir}/%{name}-*
+
+# Install redis module header
+install -pDm644 src/%{name}module.h %{buildroot}%{_includedir}/%{name}module.h
+
+# Install man pages
+man=$(dirname %{buildroot}%{_mandir})
+for page in man/man?/*; do
+ install -Dpm644 $page $man/$page
+done
+ln -s redis-server.1 %{buildroot}%{_mandir}/man1/redis-sentinel.1
+ln -s redis.conf.5 %{buildroot}%{_mandir}/man5/redis-sentinel.conf.5
+
+# Install documentation and html pages
+doc=$(echo %{buildroot}/%{_docdir}/%{name})
+for page in 00-RELEASENOTES BUGS MANIFESTO *.md; do
+ install -Dpm644 $page $doc/$page
+done
+for page in $(find doc -name \*.md | sed -e 's|.md$||g'); do
+ base=$(echo $page | sed -e 's|doc/||g')
+ install -Dpm644 $page.md $doc/$base.md
+done
+
+# Install rpm macros for redis modules
+mkdir -p %{buildroot}%{macrosdir}
+install -pDm644 %{SOURCE5} %{buildroot}%{macrosdir}/macros.%{name}
+
+%pre
+getent group %{name} &> /dev/null || \
+groupadd -r %{name} &> /dev/null
+getent passwd %{name} &> /dev/null || \
+useradd -r -g %{name} -d %{_sharedstatedir}/%{name} -s /sbin/nologin \
+-c 'Redis Database Server' %{name} &> /dev/null
+exit 0
+
+%post
+%systemd_post %{name}.service
+%systemd_post %{name}-sentinel.service
+
+%preun
+%systemd_preun %{name}.service
+%systemd_preun %{name}-sentinel.service
+
+%postun
+%systemd_postun_with_restart %{name}.service
+%systemd_postun_with_restart %{name}-sentinel.service
+
+
+%files
+%license COPYING
+%license COPYRIGHT-lua
+%license COPYING-jemalloc
+%license COPYING-hiredis
+%license LICENSE-hdrhistogram
+%license COPYING-hdrhistogram
+%license LICENSE-fpconv
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
+%attr(0640, redis, root) %config(noreplace) %{_sysconfdir}/%{name}.conf
+%attr(0640, redis, root) %config(noreplace) %{_sysconfdir}/%{name}-sentinel.conf
+%dir %attr(0750, redis, redis) %{_libdir}/%{name}
+%dir %attr(0750, redis, redis) %{_libdir}/%{name}/modules
+%dir %attr(0750, redis, redis) %{_sharedstatedir}/%{name}
+%dir %attr(0750, redis, redis) %{_localstatedir}/log/%{name}
+%{_bindir}/%{name}-*
+%{_unitdir}/%{name}.service
+%{_unitdir}/%{name}-sentinel.service
+%dir %{_sysconfdir}/systemd/system/%{name}.service.d
+%config(noreplace) %{_sysconfdir}/systemd/system/%{name}.service.d/limit.conf
+%dir %{_sysconfdir}/systemd/system/%{name}-sentinel.service.d
+%config(noreplace) %{_sysconfdir}/systemd/system/%{name}-sentinel.service.d/limit.conf
+%{_mandir}/man1/%{name}*
+%{_mandir}/man5/%{name}*
+
+%{_includedir}/%{name}module.h
+%{macrosdir}/*
+
+# specific for documentation (CC-BY-SA)
+%license doc/LICENSE
+%docdir %{_docdir}/%{name}
+%{_docdir}/%{name}
+
+%changelog
+* Wed Feb 12 2025 wangkai <13474090681@163.com> - 7.2.7-1
+- Update to 7.2.7
+- Fix CVE-2021-32626 CVE-2021-32627 CVE-2021-32762 CVE-2021-32675
+ CVE-2021-41099 CVE-2021-32628 CVE-2021-32687 CVE-2022-24735
+ CVE-2022-24736 CVE-2022-3647 CVE-2022-3734 CVE-2022-35977
+ CVE-2023-25155 CVE-2024-46981
+
+* Wed Oct 09 2024 yaoxin <yao_xin001@hoperun.com> - 4.0.14-7
+- Fix CVE-2023-45145,CVE-2024-31228 and CVE-2024-31449
+
+* Mon Jul 31 2023 wangkai <13474090681@163.com> - 4.0.14-6
+- Fix CVE-2022-24834
+
+* Mon May 15 2023 yaoxin <yao_xin001@hoperun.com> - 4.0.14-5
+- Fix CVE-2023-28856
+
+* Mon Mar 27 2023 wushaozheng<wushaozheng@ncti-gba.cn> - 4.0.14-4
+- Fix CVE-2022-36021
+
+* Tue Nov 15 2022 huajingyun<huajingyun@loongson.cn> - 4.0.14-3
+- Update config.guess and config.sub for loongarch
+
+* Tue May 10 2022 chenchen <chen_aka_jan@163.com> - 4.0.14-2
+- License compliance rectification
+
+* Wed Dec 29 2021 zhangjiapeng <zhangjiapeng9@huawei.com> - 4.0.14-1
+- Update to 4.0.14
+
+* Sat Oct 09 2021 yaoxin <yaoxin30@huawei.com> - 4.0.11-18
+- Fix CVE-2021-32672
+
+* Tue Jun 08 2021 wangyue <wangyue92@huawei.com> - 4.0.11-17
+- Fix CVE-2021-29478
+
+* Mon May 31 2021 huanghaitao <huanghaitao8@huawei.com> - 4.0.11-16
+- Completing build dependencies to fix gcc compiler missing error
+
+* Wed Apr 07 2021 wangyue <wangyue92@huawei.com> - 4.0.11-15
+- Fix CVE-2021-3470
+
+* Wed Mar 24 2021 sunguoshuai <sunguoshuai@huawei.com> - 4.0.11-14
+- change patch file in order src.rpm is same in aarch64 and x86_64
+
+* Thu Mar 11 2021 wangxiao <wangxiao65@huawei.com> - 4.0.11-13
+- Fix CVE-2021-21309
+
+* Wed Nov 11 2020 yangyanchao <yangyanchao6@huawei.com> - 4.0.11-12
+- enable dependency package jemalloc of redis to support riscv
+
+* Wed Sep 30 2020 Jiapeng Zhang <zhangjiapeng9@huawei.com> - 4.0.11-11
+- Modify aarch64 architecture jemalloc page size from 4k to 64k
+
+* Mon Sep 21 2020 wangyue <wangyue92@huawei.com> - 4.0.11-10
+- fix CVE-2019-10193
+
+* Mon Jul 20 2020 wangxiao <wangxiao654@huawei.com> - 4.0.11-9
+- fix CVE-2020-14147
+
+* Fri Jun 19 2020 Captain Wei <captain.a.wei@gmail.com> - 4.0.11-8
+- Add some dependency package in building and running phase
+
+* Fri Jun 12 2020 panchenbo <panchenbo@uniontech.com> - 4.0.11-7
+- Type:bugfix
+- ID: NA
+- SUG: restart
+- DESC: Resolve service startup failure whthout no %pre
+
+* Mon Jun 01 2020 huanghaitao <huanghaitao8@huawei.com> - 4.0.11-6
+- Resolve service startup failure
+
+* Tue Mar 17 2020 wangye <wangye54@huawei.com> - 4.0.11-5
+- CVE name fix
+
+* Tue Mar 17 2020 wangye <wangye54@huawei.com> - 4.0.11-4
+- CVE fix
+
+* Wed Jan 15 2020 zhujunhao <zhujunhao5@huawei.com> - 4.0.11-3
+- Modify redis service
+
+* Wed Jan 08 2020 lijin Yang <yanglijin@openeuler.org> - 4.0.11-2
+- Package init
diff --git a/sources b/sources
new file mode 100644
index 0000000..018a140
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+a1b43711847482c7ca27c7f2a3a4d5d8 redis-7.2.7.tar.gz
+e47d0f677de8862d60414941c5941558 redis-doc-3541d0e.tar.gz