public class Client extends BinaryClient implements Commands
BinaryClient.LIST_POSITION
Constructor and Description |
---|
Client() |
Client(String host) |
Client(String host,
int port) |
Client(String host,
int port,
boolean ssl) |
Client(String host,
int port,
boolean ssl,
SSLSocketFactory sslSocketFactory,
SSLParameters sslParameters,
HostnameVerifier hostnameVerifier) |
Modifier and Type | Method and Description |
---|---|
void |
append(String key,
String value) |
void |
bitcount(String key) |
void |
bitcount(String key,
long start,
long end) |
void |
bitfield(String key,
String... arguments)
Used for BITFIELD Redis command
|
void |
bitop(BitOP op,
String destKey,
String... srcKeys) |
void |
bitpos(String key,
boolean value,
BitPosParams params) |
void |
blpop(int timeout,
String... keys) |
void |
blpop(String[] args) |
void |
brpop(int timeout,
String... keys) |
void |
brpop(String[] args) |
void |
brpoplpush(String source,
String destination,
int timeout) |
void |
clientKill(String ipPort) |
void |
clientSetname(String name) |
void |
cluster(String subcommand) |
void |
cluster(String subcommand,
int... args) |
void |
cluster(String subcommand,
String... args) |
void |
clusterAddSlots(int... slots) |
void |
clusterCountKeysInSlot(int slot) |
void |
clusterDelSlots(int... slots) |
void |
clusterFailover() |
void |
clusterFlushSlots() |
void |
clusterForget(String nodeId) |
void |
clusterGetKeysInSlot(int slot,
int count) |
void |
clusterInfo() |
void |
clusterKeySlot(String key) |
void |
clusterMeet(String ip,
int port) |
void |
clusterNodes() |
void |
clusterReplicate(String nodeId) |
void |
clusterReset(ClusterReset resetType) |
void |
clusterReset(JedisCluster.Reset resetType)
Deprecated.
|
void |
clusterSaveConfig() |
void |
clusterSetSlotImporting(int slot,
String nodeId) |
void |
clusterSetSlotMigrating(int slot,
String nodeId) |
void |
clusterSetSlotNode(int slot,
String nodeId) |
void |
clusterSetSlotStable(int slot) |
void |
clusterSlaves(String nodeId) |
void |
clusterSlots() |
void |
configGet(String pattern) |
void |
configSet(String parameter,
String value) |
void |
decr(String key) |
void |
decrBy(String key,
long decrement) |
void |
del(String... keys) |
void |
dump(String key) |
void |
echo(String string) |
void |
eval(String script,
int keyCount,
String... params) |
void |
evalsha(String sha1,
int keyCount,
String... params) |
void |
exists(String... keys) |
void |
exists(String key)
Deprecated.
|
void |
expire(String key,
int seconds) |
void |
expireAt(String key,
long unixTime) |
void |
geoadd(String key,
double longitude,
double latitude,
String member) |
void |
geoadd(String key,
Map<String,GeoCoordinate> memberCoordinateMap) |
void |
geodist(String key,
String member1,
String member2) |
void |
geodist(String key,
String member1,
String member2,
GeoUnit unit) |
void |
geohash(String key,
String... members) |
void |
geopos(String key,
String[] members) |
void |
georadius(String key,
double longitude,
double latitude,
double radius,
GeoUnit unit) |
void |
georadius(String key,
double longitude,
double latitude,
double radius,
GeoUnit unit,
GeoRadiusParam param) |
void |
georadiusByMember(String key,
String member,
double radius,
GeoUnit unit) |
void |
georadiusByMember(String key,
String member,
double radius,
GeoUnit unit,
GeoRadiusParam param) |
void |
georadiusByMemberReadonly(String key,
String member,
double radius,
GeoUnit unit) |
void |
georadiusByMemberReadonly(String key,
String member,
double radius,
GeoUnit unit,
GeoRadiusParam param) |
void |
georadiusReadonly(String key,
double longitude,
double latitude,
double radius,
GeoUnit unit) |
void |
georadiusReadonly(String key,
double longitude,
double latitude,
double radius,
GeoUnit unit,
GeoRadiusParam param) |
void |
get(String key) |
void |
getbit(String key,
long offset) |
void |
getrange(String key,
long startOffset,
long endOffset) |
void |
getSet(String key,
String value) |
void |
hdel(String key,
String... fields) |
void |
hexists(String key,
String field) |
void |
hget(String key,
String field) |
void |
hgetAll(String key) |
void |
hincrBy(String key,
String field,
long value) |
void |
hincrByFloat(String key,
String field,
double increment) |
void |
hkeys(String key) |
void |
hlen(String key) |
void |
hmget(String key,
String... fields) |
void |
hmset(String key,
Map<String,String> hash) |
void |
hscan(String key,
int cursor,
ScanParams params)
Deprecated.
|
void |
hscan(String key,
String cursor,
ScanParams params) |
void |
hset(String key,
Map<String,String> hash) |
void |
hset(String key,
String field,
String value) |
void |
hsetnx(String key,
String field,
String value) |
void |
hstrlen(String key,
String field)
Used for HSTRLEN Redis command
|
void |
hvals(String key) |
void |
incr(String key) |
void |
incrBy(String key,
long increment) |
void |
incrByFloat(String key,
double increment) |
void |
keys(String pattern) |
void |
lindex(String key,
long index) |
void |
linsert(String key,
BinaryClient.LIST_POSITION where,
String pivot,
String value)
Deprecated.
|
void |
linsert(String key,
ListPosition where,
String pivot,
String value) |
void |
llen(String key) |
void |
lpop(String key) |
void |
lpush(String key,
String... string) |
void |
lpushx(String key,
String... string) |
void |
lrange(String key,
long start,
long stop) |
void |
lrem(String key,
long count,
String value) |
void |
lset(String key,
long index,
String value) |
void |
ltrim(String key,
long start,
long stop) |
void |
mget(String... keys) |
void |
migrate(String host,
int port,
String key,
int destinationDb,
int timeout) |
void |
move(String key,
int dbIndex) |
void |
mset(String... keysvalues) |
void |
msetnx(String... keysvalues) |
void |
objectEncoding(String key) |
void |
objectIdletime(String key) |
void |
objectRefcount(String key) |
void |
persist(String key) |
void |
pexpire(String key,
int milliseconds)
Deprecated.
|
void |
pexpire(String key,
long milliseconds) |
void |
pexpireAt(String key,
long millisecondsTimestamp) |
void |
pfadd(String key,
String... elements) |
void |
pfcount(String... keys) |
void |
pfcount(String key) |
void |
pfmerge(String destkey,
String... sourcekeys) |
void |
ping(String message) |
void |
psetex(String key,
int milliseconds,
String value)
Deprecated.
|
void |
psetex(String key,
long milliseconds,
String value) |
void |
psubscribe(String... patterns) |
void |
pttl(String key) |
void |
publish(String channel,
String message) |
void |
pubsub(String subcommand,
String... args) |
void |
pubsubChannels(String pattern) |
void |
pubsubNumPat() |
void |
pubsubNumSub(String... channels) |
void |
punsubscribe(String... patterns) |
void |
rename(String oldkey,
String newkey) |
void |
renamenx(String oldkey,
String newkey) |
void |
restore(String key,
int ttl,
byte[] serializedValue) |
void |
restoreReplace(String key,
int ttl,
byte[] serializedValue) |
void |
rpop(String key) |
void |
rpoplpush(String srckey,
String dstkey) |
void |
rpush(String key,
String... string) |
void |
rpushx(String key,
String... string) |
void |
sadd(String key,
String... members) |
void |
scan(String cursor,
ScanParams params) |
void |
scard(String key) |
void |
scriptExists(String... sha1) |
void |
scriptLoad(String script) |
void |
sdiff(String... keys) |
void |
sdiffstore(String dstkey,
String... keys) |
void |
sentinel(String... args) |
void |
set(String key,
String value) |
void |
set(String key,
String value,
String nxxx) |
void |
set(String key,
String value,
String expx,
long time) |
void |
set(String key,
String value,
String nxxx,
String expx,
int time) |
void |
set(String key,
String value,
String nxxx,
String expx,
long time) |
void |
setbit(String key,
long offset,
boolean value) |
void |
setbit(String key,
long offset,
String value) |
void |
setex(String key,
int seconds,
String value) |
void |
setnx(String key,
String value) |
void |
setrange(String key,
long offset,
String value) |
void |
sinter(String... keys) |
void |
sinterstore(String dstkey,
String... keys) |
void |
sismember(String key,
String member) |
void |
smembers(String key) |
void |
smove(String srckey,
String dstkey,
String member) |
void |
sort(String key) |
void |
sort(String key,
SortingParams sortingParameters) |
void |
sort(String key,
SortingParams sortingParameters,
String dstkey) |
void |
sort(String key,
String dstkey) |
void |
spop(String key) |
void |
spop(String key,
long count) |
void |
srandmember(String key) |
void |
srandmember(String key,
int count) |
void |
srem(String key,
String... members) |
void |
sscan(String key,
int cursor,
ScanParams params)
Deprecated.
|
void |
sscan(String key,
String cursor,
ScanParams params) |
void |
strlen(String key) |
void |
subscribe(String... channels) |
void |
substr(String key,
int start,
int end) |
void |
sunion(String... keys) |
void |
sunionstore(String dstkey,
String... keys) |
void |
touch(String... keys) |
void |
ttl(String key) |
void |
type(String key) |
void |
unlink(String... keys) |
void |
unsubscribe(String... channels) |
void |
watch(String... keys) |
void |
zadd(String key,
double score,
String member) |
void |
zadd(String key,
double score,
String member,
ZAddParams params) |
void |
zadd(String key,
Map<String,Double> scoreMembers) |
void |
zadd(String key,
Map<String,Double> scoreMembers,
ZAddParams params) |
void |
zcard(String key) |
void |
zcount(String key,
double min,
double max) |
void |
zcount(String key,
String min,
String max) |
void |
zincrby(String key,
double increment,
String member) |
void |
zincrby(String key,
double increment,
String member,
ZIncrByParams params) |
void |
zinterstore(String dstkey,
String... sets) |
void |
zinterstore(String dstkey,
ZParams params,
String... sets) |
void |
zlexcount(String key,
String min,
String max) |
void |
zrange(String key,
long start,
long stop) |
void |
zrangeByLex(String key,
String min,
String max) |
void |
zrangeByLex(String key,
String min,
String max,
int offset,
int count) |
void |
zrangeByScore(String key,
double min,
double max) |
void |
zrangeByScore(String key,
double min,
double max,
int offset,
int count) |
void |
zrangeByScore(String key,
String min,
String max) |
void |
zrangeByScore(String key,
String min,
String max,
int offset,
int count) |
void |
zrangeByScoreWithScores(String key,
double min,
double max) |
void |
zrangeByScoreWithScores(String key,
double min,
double max,
int offset,
int count) |
void |
zrangeByScoreWithScores(String key,
String min,
String max) |
void |
zrangeByScoreWithScores(String key,
String min,
String max,
int offset,
int count) |
void |
zrangeWithScores(String key,
long start,
long stop) |
void |
zrank(String key,
String member) |
void |
zrem(String key,
String... members) |
void |
zremrangeByLex(String key,
String min,
String max) |
void |
zremrangeByRank(String key,
long start,
long stop) |
void |
zremrangeByScore(String key,
double min,
double max) |
void |
zremrangeByScore(String key,
String min,
String max) |
void |
zrevrange(String key,
long start,
long stop) |
void |
zrevrangeByLex(String key,
String max,
String min) |
void |
zrevrangeByLex(String key,
String max,
String min,
int offset,
int count) |
void |
zrevrangeByScore(String key,
double max,
double min) |
void |
zrevrangeByScore(String key,
double max,
double min,
int offset,
int count) |
void |
zrevrangeByScore(String key,
String max,
String min) |
void |
zrevrangeByScore(String key,
String max,
String min,
int offset,
int count) |
void |
zrevrangeByScoreWithScores(String key,
double max,
double min) |
void |
zrevrangeByScoreWithScores(String key,
double max,
double min,
int offset,
int count) |
void |
zrevrangeByScoreWithScores(String key,
String max,
String min) |
void |
zrevrangeByScoreWithScores(String key,
String max,
String min,
int offset,
int count) |
void |
zrevrangeWithScores(String key,
long start,
long stop) |
void |
zrevrank(String key,
String member) |
void |
zscan(String key,
int cursor,
ScanParams params)
Deprecated.
|
void |
zscan(String key,
String cursor,
ScanParams params) |
void |
zscore(String key,
String member) |
void |
zunionstore(String dstkey,
String... sets) |
void |
zunionstore(String dstkey,
ZParams params,
String... sets) |
append, asking, auth, bgrewriteaof, bgsave, bitcount, bitcount, bitfield, bitop, bitpos, blpop, blpop, brpop, brpop, brpoplpush, clientGetname, clientKill, clientKill, clientList, clientPause, clientSetname, close, cluster, configGet, configResetStat, configRewrite, configSet, connect, dbSize, debug, decr, decrBy, del, discard, disconnect, dump, echo, eval, eval, evalsha, evalsha, exec, exists, expire, expireAt, flushAll, flushDB, geoadd, geoadd, geodist, geodist, geohash, geopos, georadius, georadius, georadiusByMember, georadiusByMember, georadiusByMemberReadonly, georadiusByMemberReadonly, georadiusReadonly, georadiusReadonly, get, getbit, getDB, getrange, getSet, hdel, hexists, hget, hgetAll, hincrBy, hincrByFloat, hkeys, hlen, hmget, hmset, hscan, hscan, hset, hset, hsetnx, hstrlen, hvals, incr, incrBy, incrByFloat, info, info, isInMulti, isInWatch, keys, lastsave, lindex, linsert, linsert, llen, lpop, lpush, lpushx, lrange, lrem, lset, ltrim, mget, migrate, migrate, monitor, move, mset, msetnx, multi, objectEncoding, objectIdletime, objectRefcount, persist, pexpire, pexpire, pexpireAt, pfadd, pfcount, pfcount, pfmerge, ping, ping, psetex, psetex, psubscribe, pttl, publish, pubsub, punsubscribe, punsubscribe, quit, randomKey, readonly, rename, renamenx, resetState, restore, restoreReplace, rpop, rpoplpush, rpush, rpushx, sadd, save, scan, scan, scard, scriptExists, scriptFlush, scriptKill, scriptLoad, sdiff, sdiffstore, select, sentinel, set, set, set, set, set, setbit, setbit, setDb, setex, setnx, setPassword, setrange, shutdown, sinter, sinterstore, sismember, slaveof, slaveofNoOne, slowlogGet, slowlogGet, slowlogLen, slowlogReset, smembers, smove, sort, sort, sort, sort, spop, spop, srandmember, srandmember, srem, sscan, sscan, strlen, subscribe, substr, sunion, sunionstore, swapDB, sync, time, touch, ttl, type, unlink, unsubscribe, unsubscribe, unwatch, waitReplicas, watch, zadd, zadd, zaddBinary, zaddBinary, zcard, zcount, zcount, zcount, zincrby, zincrby, zinterstore, zinterstore, zlexcount, zrange, zrangeByLex, zrangeByLex, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeWithScores, zrank, zrem, zremrangeByLex, zremrangeByRank, zremrangeByScore, zremrangeByScore, zremrangeByScore, zrevrange, zrevrangeByLex, zrevrangeByLex, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeWithScores, zrevrank, zscan, zscan, zscore, zunionstore, zunionstore
flush, getAll, getAll, getBinaryBulkReply, getBinaryMultiBulkReply, getBulkReply, getConnectionTimeout, getHost, getIntegerMultiBulkReply, getIntegerReply, getMultiBulkReply, getObjectMultiBulkReply, getOne, getPort, getRawObjectMultiBulkReply, getSocket, getSoTimeout, getStatusCodeReply, isBroken, isConnected, readProtocolWithCheckingBroken, resetPipelinedCount, rollbackTimeout, sendCommand, sendCommand, sendCommand, setConnectionTimeout, setHost, setPort, setSoTimeout, setTimeoutInfinite
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
bgrewriteaof, bgsave, clientGetname, clientKill, clientList, configResetStat, discard, exec, lastsave, multi, save, scan, waitReplicas
public Client()
public Client(String host)
public Client(String host, int port)
public Client(String host, int port, boolean ssl)
public Client(String host, int port, boolean ssl, SSLSocketFactory sslSocketFactory, SSLParameters sslParameters, HostnameVerifier hostnameVerifier)
@Deprecated public void exists(String key)
public void expireAt(String key, long unixTime)
public void substr(String key, int start, int end)
public void lrange(String key, long start, long stop)
public void ltrim(String key, long start, long stop)
public void sinterstore(String dstkey, String... keys)
sinterstore
in interface Commands
public void sunionstore(String dstkey, String... keys)
sunionstore
in interface Commands
public void sdiffstore(String dstkey, String... keys)
sdiffstore
in interface Commands
public void srandmember(String key)
srandmember
in interface Commands
public void zadd(String key, double score, String member, ZAddParams params)
public void zadd(String key, Map<String,Double> scoreMembers, ZAddParams params)
public void zrange(String key, long start, long stop)
public void zincrby(String key, double increment, String member, ZIncrByParams params)
public void zrevrange(String key, long start, long stop)
public void zrangeWithScores(String key, long start, long stop)
zrangeWithScores
in interface Commands
public void zrevrangeWithScores(String key, long start, long stop)
zrevrangeWithScores
in interface Commands
public void sort(String key, SortingParams sortingParameters)
public void blpop(int timeout, String... keys)
public void sort(String key, SortingParams sortingParameters, String dstkey)
public void brpop(int timeout, String... keys)
public void zcount(String key, double min, double max)
public void zrangeByScore(String key, double min, double max)
zrangeByScore
in interface Commands
public void zrangeByScore(String key, String min, String max)
zrangeByScore
in interface Commands
public void zrangeByScore(String key, double min, double max, int offset, int count)
zrangeByScore
in interface Commands
public void zrangeByScoreWithScores(String key, double min, double max)
zrangeByScoreWithScores
in interface Commands
public void zrangeByScoreWithScores(String key, double min, double max, int offset, int count)
zrangeByScoreWithScores
in interface Commands
public void zrevrangeByScore(String key, double max, double min)
zrevrangeByScore
in interface Commands
public void zrangeByScore(String key, String min, String max, int offset, int count)
zrangeByScore
in interface Commands
public void zrangeByScoreWithScores(String key, String min, String max)
zrangeByScoreWithScores
in interface Commands
public void zrangeByScoreWithScores(String key, String min, String max, int offset, int count)
zrangeByScoreWithScores
in interface Commands
public void zrevrangeByScore(String key, String max, String min)
zrevrangeByScore
in interface Commands
public void zrevrangeByScore(String key, double max, double min, int offset, int count)
zrevrangeByScore
in interface Commands
public void zrevrangeByScore(String key, String max, String min, int offset, int count)
zrevrangeByScore
in interface Commands
public void zrevrangeByScoreWithScores(String key, double max, double min)
zrevrangeByScoreWithScores
in interface Commands
public void zrevrangeByScoreWithScores(String key, String max, String min)
zrevrangeByScoreWithScores
in interface Commands
public void zrevrangeByScoreWithScores(String key, double max, double min, int offset, int count)
zrevrangeByScoreWithScores
in interface Commands
public void zrevrangeByScoreWithScores(String key, String max, String min, int offset, int count)
zrevrangeByScoreWithScores
in interface Commands
public void zremrangeByRank(String key, long start, long stop)
zremrangeByRank
in interface Commands
public void zremrangeByScore(String key, double min, double max)
zremrangeByScore
in interface Commands
public void zremrangeByScore(String key, String min, String max)
zremrangeByScore
in interface Commands
public void zunionstore(String dstkey, String... sets)
zunionstore
in interface Commands
public void zunionstore(String dstkey, ZParams params, String... sets)
zunionstore
in interface Commands
public void zinterstore(String dstkey, String... sets)
zinterstore
in interface Commands
public void zinterstore(String dstkey, ZParams params, String... sets)
zinterstore
in interface Commands
public void zrevrangeByLex(String key, String max, String min, int offset, int count)
@Deprecated public void linsert(String key, BinaryClient.LIST_POSITION where, String pivot, String value)
public void linsert(String key, ListPosition where, String pivot, String value)
public void brpoplpush(String source, String destination, int timeout)
brpoplpush
in interface Commands
public void setbit(String key, long offset, boolean value)
public void bitpos(String key, boolean value, BitPosParams params)
public void getrange(String key, long startOffset, long endOffset)
public void unsubscribe(String... channels)
public void psubscribe(String... patterns)
public void punsubscribe(String... patterns)
public void subscribe(String... channels)
public void pubsubChannels(String pattern)
public void pubsubNumPat()
public void pubsubNumSub(String... channels)
public void scriptExists(String... sha1)
public void scriptLoad(String script)
public void objectRefcount(String key)
objectRefcount
in interface Commands
public void objectIdletime(String key)
objectIdletime
in interface Commands
public void objectEncoding(String key)
objectEncoding
in interface Commands
public void bitcount(String key, long start, long end)
public void sentinel(String... args)
public void restore(String key, int ttl, byte[] serializedValue)
public void restoreReplace(String key, int ttl, byte[] serializedValue)
restoreReplace
in interface Commands
@Deprecated public void pexpire(String key, int milliseconds)
public void pexpire(String key, long milliseconds)
public void pexpireAt(String key, long millisecondsTimestamp)
public void incrByFloat(String key, double increment)
incrByFloat
in interface Commands
@Deprecated public void psetex(String key, int milliseconds, String value)
public void srandmember(String key, int count)
public void clientKill(String ipPort)
clientKill
in interface Commands
public void clientSetname(String name)
clientSetname
in interface Commands
public void hincrByFloat(String key, String field, double increment)
hincrByFloat
in interface Commands
@Deprecated public void hscan(String key, int cursor, ScanParams params)
@Deprecated public void sscan(String key, int cursor, ScanParams params)
@Deprecated public void zscan(String key, int cursor, ScanParams params)
public void scan(String cursor, ScanParams params)
public void hscan(String key, String cursor, ScanParams params)
public void sscan(String key, String cursor, ScanParams params)
public void zscan(String key, String cursor, ScanParams params)
public void cluster(String subcommand, int... args)
public void cluster(String subcommand)
public void clusterNodes()
public void clusterMeet(String ip, int port)
@Deprecated public void clusterReset(JedisCluster.Reset resetType)
public void clusterReset(ClusterReset resetType)
public void clusterAddSlots(int... slots)
public void clusterDelSlots(int... slots)
public void clusterInfo()
public void clusterGetKeysInSlot(int slot, int count)
public void clusterSetSlotNode(int slot, String nodeId)
public void clusterSetSlotMigrating(int slot, String nodeId)
public void clusterSetSlotImporting(int slot, String nodeId)
public void pfcount(String key)
public void pfcount(String... keys)
public void clusterSetSlotStable(int slot)
public void clusterForget(String nodeId)
public void clusterFlushSlots()
public void clusterKeySlot(String key)
public void clusterCountKeysInSlot(int slot)
public void clusterSaveConfig()
public void clusterReplicate(String nodeId)
public void clusterSlaves(String nodeId)
public void clusterFailover()
public void clusterSlots()
public void geoadd(String key, Map<String,GeoCoordinate> memberCoordinateMap)
public void georadius(String key, double longitude, double latitude, double radius, GeoUnit unit)
public void georadiusReadonly(String key, double longitude, double latitude, double radius, GeoUnit unit)
public void georadius(String key, double longitude, double latitude, double radius, GeoUnit unit, GeoRadiusParam param)
public void georadiusReadonly(String key, double longitude, double latitude, double radius, GeoUnit unit, GeoRadiusParam param)
public void georadiusByMember(String key, String member, double radius, GeoUnit unit)
public void georadiusByMemberReadonly(String key, String member, double radius, GeoUnit unit)
public void georadiusByMemberReadonly(String key, String member, double radius, GeoUnit unit, GeoRadiusParam param)
public void georadiusByMember(String key, String member, double radius, GeoUnit unit, GeoRadiusParam param)
public void bitfield(String key, String... arguments)
Commands
Copyright © 2019. All rights reserved.