Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
ca54335f
Commit
ca54335f
authored
Jun 15, 2016
by
antirez
Browse files
Merge branch 'unstable' of github.com:/antirez/redis into unstable
parents
212f1578
001cadc8
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/Makefile
View file @
ca54335f
...
...
@@ -55,7 +55,7 @@ endif
FINAL_CFLAGS
=
$(STD)
$(WARN)
$(OPT)
$(DEBUG)
$(CFLAGS)
$(REDIS_CFLAGS)
-I
../deps/geohash-int
FINAL_LDFLAGS
=
$(LDFLAGS)
$(REDIS_LDFLAGS)
$(DEBUG)
FINAL_LIBS
=
-lm
-ldl
FINAL_LIBS
=
-lm
DEBUG
=
-g
-ggdb
ifeq
($(uname_S),SunOS)
...
...
@@ -65,17 +65,27 @@ ifeq ($(uname_S),SunOS)
FINAL_LIBS
+=
-ldl
-lnsl
-lsocket
-lresolv
-lpthread
-lrt
else
ifeq
($(uname_S),Darwin)
# Darwin (nothing to do)
# Darwin
FINAL_LIBS
+=
-ldl
else
ifeq
($(uname_S),AIX)
# AIX
FINAL_LDFLAGS
+=
-Wl
,-bexpall
FINAL_LIBS
+=
-pthread
-lcrypt
-lbsd
FINAL_LIBS
+=
-ldl
-pthread
-lcrypt
-lbsd
else
ifeq
($(uname_S),OpenBSD)
# OpenBSD
FINAL_LIBS
+=
-lpthread
else
ifeq
($(uname_S),FreeBSD)
# FreeBSD
FINAL_LIBS
+=
-lpthread
else
# All the other OSes (notably Linux)
FINAL_LDFLAGS
+=
-rdynamic
FINAL_LIBS
+=
-pthread
FINAL_LIBS
+=
-ldl
-pthread
endif
endif
endif
endif
endif
...
...
src/bitops.c
View file @
ca54335f
...
...
@@ -775,6 +775,10 @@ void bitcountCommand(client *c) {
/* Convert negative indexes */
if
(
start
<
0
)
start
=
strlen
+
start
;
if
(
end
<
0
)
end
=
strlen
+
end
;
if
((
start
<
0
)
&&
(
end
<
0
)
&&
(
start
>
end
))
{
addReply
(
c
,
shared
.
czero
);
return
;
}
if
(
start
<
0
)
start
=
0
;
if
(
end
<
0
)
end
=
0
;
if
(
end
>=
strlen
)
end
=
strlen
-
1
;
...
...
utils/install_server.sh
View file @
ca54335f
...
...
@@ -25,9 +25,25 @@
#
################################################################################
#
# Interactive service installer for redis server
# this generates a redis config file and an /etc/init.d script, and installs them
# this scripts should be run as root
# Service installer for redis server, runs interactively by default.
#
# To run this script non-interactively (for automation/provisioning purposes),
# feed the variables into the script. Any missing variables will be prompted!
# Tip: Environment variables also support command substitution (see REDIS_EXECUTABLE)
#
# Example:
#
# sudo REDIS_PORT=1234 \
# REDIS_CONFIG_FILE=/etc/redis/1234.conf \
# REDIS_LOG_FILE=/var/log/redis_1234.log \
# REDIS_DATA_DIR=/var/lib/redis/1234 \
# REDIS_EXECUTABLE=`command -v redis-server` ./utils/install_server.sh
#
# This generates a redis config file and an /etc/init.d script, and installs them.
#
# /!\ This script should be run as root
#
################################################################################
die
()
{
echo
"ERROR:
$1
. Aborting!"
...
...
@@ -42,6 +58,7 @@ SCRIPTPATH=$(dirname $SCRIPT)
#Initial defaults
_REDIS_PORT
=
6379
_MANUAL_EXECUTION
=
false
echo
"Welcome to the redis service installer"
echo
"This script will help you easily set up a running redis server"
...
...
@@ -53,47 +70,61 @@ if [ "$(id -u)" -ne 0 ] ; then
exit
1
fi
#Read the redis port
read
-p
"Please select the redis port for this instance: [
$_REDIS_PORT
] "
REDIS_PORT
if
!
echo
$REDIS_PORT
| egrep
-q
'^[0-9]+$'
;
then
echo
"Selecting default:
$_REDIS_PORT
"
REDIS_PORT
=
$_REDIS_PORT
_MANUAL_EXECUTION
=
true
#Read the redis port
read
-p
"Please select the redis port for this instance: [
$_REDIS_PORT
] "
REDIS_PORT
if
!
echo
$REDIS_PORT
| egrep
-q
'^[0-9]+$'
;
then
echo
"Selecting default:
$_REDIS_PORT
"
REDIS_PORT
=
$_REDIS_PORT
fi
fi
#read the redis config file
_REDIS_CONFIG_FILE
=
"/etc/redis/
$REDIS_PORT
.conf"
read
-p
"Please select the redis config file name [
$_REDIS_CONFIG_FILE
] "
REDIS_CONFIG_FILE
if
[
-z
"
$REDIS_CONFIG_FILE
"
]
;
then
REDIS_CONFIG_FILE
=
$_REDIS_CONFIG_FILE
echo
"Selected default -
$REDIS_CONFIG_FILE
"
_MANUAL_EXECUTION
=
true
#read the redis config file
_REDIS_CONFIG_FILE
=
"/etc/redis/
$REDIS_PORT
.conf"
read
-p
"Please select the redis config file name [
$_REDIS_CONFIG_FILE
] "
REDIS_CONFIG_FILE
if
[
-z
"
$REDIS_CONFIG_FILE
"
]
;
then
REDIS_CONFIG_FILE
=
$_REDIS_CONFIG_FILE
echo
"Selected default -
$REDIS_CONFIG_FILE
"
fi
fi
#read the redis log file path
_REDIS_LOG_FILE
=
"/var/log/redis_
$REDIS_PORT
.log"
read
-p
"Please select the redis log file name [
$_REDIS_LOG_FILE
] "
REDIS_LOG_FILE
if
[
-z
"
$REDIS_LOG_FILE
"
]
;
then
REDIS_LOG_FILE
=
$_REDIS_LOG_FILE
echo
"Selected default -
$REDIS_LOG_FILE
"
_MANUAL_EXECUTION
=
true
#read the redis log file path
_REDIS_LOG_FILE
=
"/var/log/redis_
$REDIS_PORT
.log"
read
-p
"Please select the redis log file name [
$_REDIS_LOG_FILE
] "
REDIS_LOG_FILE
if
[
-z
"
$REDIS_LOG_FILE
"
]
;
then
REDIS_LOG_FILE
=
$_REDIS_LOG_FILE
echo
"Selected default -
$REDIS_LOG_FILE
"
fi
fi
#get the redis data directory
_REDIS_DATA_DIR
=
"/var/lib/redis/
$REDIS_PORT
"
read
-p
"Please select the data directory for this instance [
$_REDIS_DATA_DIR
] "
REDIS_DATA_DIR
if
[
-z
"
$REDIS_DATA_DIR
"
]
;
then
REDIS_DATA_DIR
=
$_REDIS_DATA_DIR
echo
"Selected default -
$REDIS_DATA_DIR
"
_MANUAL_EXECUTION
=
true
#get the redis data directory
_REDIS_DATA_DIR
=
"/var/lib/redis/
$REDIS_PORT
"
read
-p
"Please select the data directory for this instance [
$_REDIS_DATA_DIR
] "
REDIS_DATA_DIR
if
[
-z
"
$REDIS_DATA_DIR
"
]
;
then
REDIS_DATA_DIR
=
$_REDIS_DATA_DIR
echo
"Selected default -
$REDIS_DATA_DIR
"
fi
fi
#get the redis executable path
_REDIS_EXECUTABLE
=
`
command
-v
redis-server
`
read
-p
"Please select the redis executable path [
$_REDIS_EXECUTABLE
] "
REDIS_EXECUTABLE
if
[
!
-x
"
$REDIS_EXECUTABLE
"
]
;
then
REDIS_EXECUTABLE
=
$_REDIS_EXECUTABLE
_MANUAL_EXECUTION
=
true
#get the redis executable path
_REDIS_EXECUTABLE
=
`
command
-v
redis-server
`
read
-p
"Please select the redis executable path [
$_REDIS_EXECUTABLE
] "
REDIS_EXECUTABLE
if
[
!
-x
"
$REDIS_EXECUTABLE
"
]
;
then
echo
"Mmmmm... it seems like you don't have a redis executable. Did you run make install yet?"
exit
1
REDIS_EXECUTABLE
=
$_REDIS_EXECUTABLE
if
[
!
-x
"
$REDIS_EXECUTABLE
"
]
;
then
echo
"Mmmmm... it seems like you don't have a redis executable. Did you run make install yet?"
exit
1
fi
fi
fi
...
...
@@ -112,7 +143,9 @@ echo "Data dir : $REDIS_DATA_DIR"
echo
"Executable :
$REDIS_EXECUTABLE
"
echo
"Cli Executable :
$CLI_EXEC
"
read
-p
"Is this ok? Then press ENTER to go on or Ctrl-C to abort."
_UNUSED_
if
$_MANUAL_EXECUTION
==
true
;
then
read
-p
"Is this ok? Then press ENTER to go on or Ctrl-C to abort."
_UNUSED_
fi
mkdir
-p
`
dirname
"
$REDIS_CONFIG_FILE
"
`
||
die
"Could not create redis config directory"
mkdir
-p
`
dirname
"
$REDIS_LOG_FILE
"
`
||
die
"Could not create redis log dir"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment