Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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