redis基本使用

redis安装与启动

[root@C7mini ~]#yum install redis
[root@C7mini ~]#rpm -ql redis
/etc/logrotate.d/redis
/etc/redis-sentinel.conf
/etc/redis.conf
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli
/usr/bin/redis-sentinel
/usr/bin/redis-server
/usr/bin/redis-shutdown
/usr/lib/systemd/system/redis-sentinel.service
/usr/lib/systemd/system/redis.service
/usr/lib/tmpfiles.d/redis.conf
/usr/share/doc/redis-3.2.3
/usr/share/doc/redis-3.2.3/00-RELEASENOTES
/usr/share/doc/redis-3.2.3/BUGS
/usr/share/doc/redis-3.2.3/CONTRIBUTING
/usr/share/doc/redis-3.2.3/MANIFESTO
/usr/share/doc/redis-3.2.3/README.md
/usr/share/licenses/redis-3.2.3
/usr/share/licenses/redis-3.2.3/COPYING
/var/lib/redis
/var/log/redis
/var/run/redis

[root@C7mini ~]#systemctl start redis
[root@C7mini ~]#ss -ntl
State       Recv-Q Send-Q Local Address:Port                Peer Address:Port              
LISTEN      0      128        127.0.0.1:6379                           *:*                  

[root@C7mini ~]#ps aux
redis      1694  0.1  0.5 142908  5784 ?        Ssl  13:12   0:05 /usr/bin/redis-server 127.0

客户端工具Redis-cli

[root@C7mini ~]#redis-cli -h
redis-cli 3.2.3

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
  -h <hostname>      Server hostname (default: 127.0.0.1). ----------------------------- 指明连接主机,默认是本机
  -p <port>          Server port (default: 6379). -------------------------------------- 默认端口 6379
  -s <socket>        Server socket (overrides hostname and port). ---------------------- socket本地连接
  -a <password>      Password to use when connecting to the server. -------------------- 认证,没有多级授权,没有用户
  -r <repeat>        Execute specified command N times.
  -i <interval>      When -r is used, waits <interval> seconds per command.
                     It is possible to specify sub-second times like -i 0.1.
  -n <db>            Database number.
  -x                 Read last argument from STDIN.
  -d <delimiter>     Multi-bulk delimiter in for raw formatting (default: \n).
  -c                 Enable cluster mode (follow -ASK and -MOVED redirections).
  --raw              Use raw formatting for replies (default when STDOUT is
                     not a tty).
  --no-raw           Force formatted output even when STDOUT is not a tty.
  --csv              Output in CSV format.
  --stat             Print rolling stats about server: mem, clients, ...
  --latency          Enter a special mode continuously sampling latency.
  --latency-history  Like --latency but tracking latency changes over time.
                     Default time interval is 15 sec. Change it using -i.
  --latency-dist     Shows latency as a spectrum, requires xterm 256 colors.
                     Default time interval is 1 sec. Change it using -i.
  --lru-test <keys>  Simulate a cache workload with an 80-20 distribution.
  --slave            Simulate a slave showing commands received from the master.
  --rdb <filename>   Transfer an RDB dump from remote server to local file.
  --pipe             Transfer raw Redis protocol from stdin to server.
  --pipe-timeout <n> In --pipe mode, abort with error if after sending all data.
                     no reply is received within <n> seconds.
                     Default timeout: 30. Use 0 to wait forever.
  --bigkeys          Sample Redis keys looking for big keys.
  --scan             List all keys using the SCAN command.
  --pattern <pat>    Useful with --scan to specify a SCAN pattern.
  --intrinsic-latency <sec> Run a test to measure intrinsic system latency.
                     The test will run for the specified amount of seconds.
  --eval <file>      Send an EVAL command using the Lua script at <file>.
  --ldb              Used with --eval enable the Redis Lua debugger.
  --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.
  --help             Output this help and exit.
  --version          Output version and exit.

Examples:
  cat /etc/passwd | redis-cli -x set mypasswd
  redis-cli get mypasswd
  redis-cli -r 100 lpush mylist x
  redis-cli -r 100 -i 1 info | grep used_memory_human:
  redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
  redis-cli --scan --pattern '*:12345*'

  (Note: when using --eval the comma separates KEYS[] from ARGV[] items)

When no command is given, redis-cli starts in interactive mode.
Type "help" in interactive mode for information on available commands
and settings.

连接redis

[root@C7mini ~]#redis-cli
127.0.0.1:6379> 

redis的数据表使用数字为表号,默认表为16个,默认表号0到15,可以使用SELECT查询,每个库自身是个索引,表号也是索引号

[root@C7mini ~]#redis-cli
127.0.0.1:6379> SELECT 0
OK
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> SELECT 15
OK
127.0.0.1:6379[15]> SELECT 16
(error) ERR invalid DB index
127.0.0.1:6379[15]> 

redis所有的数据都是键值对
redis的帮助查询使用help加Tab键,Tab键切换不同的命令组。

generic:通用命令,对所有的类都支持
string:对字符串操作
list:列表
set:集合
sorted_set:有序集合
hash:字段
pubsub:发布订阅队列
transactions:事务
connection:连接
server:服务器
scripting:脚本
hyperloglog:
cluster:集群
geo:
APPEND:索引

string字符集

127.0.0.1:6379[15]> help @string

  APPEND key value --------------------------------------------------------------------------- 在原有值进行追加
  summary: Append a value to a key
  since: 2.0.0

  BITCOUNT key [start end]
  summary: Count set bits in a string
  since: 2.6.0

  BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
  summary: Perform arbitrary bitfield integer operations on strings
  since: 3.2.0

  BITOP operation destkey key [key ...]
  summary: Perform bitwise operations between strings
  since: 2.6.0

  BITPOS key bit [start] [end]
  summary: Find first bit set or clear in a string
  since: 2.8.7

  DECR key --------------------------------------------------------------------------------- 减少
  summary: Decrement the integer value of a key by one
  since: 1.0.0

  DECRBY key decrement --------------------------------------------------------------------- 减少多个
  summary: Decrement the integer value of a key by the given number
  since: 1.0.0

  GET key ---------------------------------------------------------------------------------- 获取一个键值对
  summary: Get the value of a key
  since: 1.0.0

  GETBIT key offset
  summary: Returns the bit value at offset in the string value stored at key
  since: 2.2.0

  GETRANGE key start end
  summary: Get a substring of the string stored at a key
  since: 2.4.0

  GETSET key value
  summary: Set the string value of a key and return its old value
  since: 1.0.0

  INCR key -------------------------------------------------------------------------------- 增加
  summary: Increment the integer value of a key by one
  since: 1.0.0

  INCRBY key increment -------------------------------------------------------------------- 增加多个
  summary: Increment the integer value of a key by the given amount
  since: 1.0.0

  INCRBYFLOAT key increment
  summary: Increment the float value of a key by the given amount
  since: 2.6.0

  MGET key [key ...] ----------------------------------------------------------------- 获取多个键值对
  summary: Get the values of all the given keys
  since: 1.0.0

  MSET key value [key value ...] ----------------------------------------------------- 一次创建多个键值对
  summary: Set multiple keys to multiple values
  since: 1.0.1

  MSETNX key value [key value ...]
  summary: Set multiple keys to multiple values, only if none of the keys exist
  since: 1.0.1

  PSETEX key milliseconds value
  summary: Set the value and expiration in milliseconds of a key
  since: 2.6.0

  SET key value [EX seconds] [PX milliseconds] [NX|XX] ------------------------------ 创建一个键值对
  summary: Set the string value of a key
  since: 1.0.0

  SETBIT key offset value
  summary: Sets or clears the bit at offset in the string value stored at key
  since: 2.2.0

  SETEX key seconds value ----------------------------------------------------------- 定义过期时间
  summary: Set the value and expiration of a key
  since: 2.0.0

  SETNX key value ------------------------------------------------------------------- 新建
  summary: Set the value of a key, only if the key does not exist
  since: 1.0.0

  SETRANGE key offset value --------------------------------------------------------- 修改一组的key值
  summary: Overwrite part of a string at key starting at the specified offset
  since: 2.2.0

  STRLEN key ----------------------------------------------------------------------- 判定一个键的字符串的长度
  summary: Get the length of the value stored in a key
  since: 2.2.0

示例

127.0.0.1:6379[15]> SET mykey 'hello redis'          创建一个键值对mykey,内容为hello redis
OK
127.0.0.1:6379[15]> GET mykey                        获取mykey查看
"hello redis"
127.0.0.1:6379[15]> APPEND mykey ',www.redis.io'     在mykey附加www.redis.io
(integer) 24
127.0.0.1:6379[15]> GET mykey                        查看mykey
"hello redis,www.redis.io"
127.0.0.1:6379[15]> STRLEN mykey                     查看mykey的字符长度
(integer) 24
127.0.0.1:6379[15]> SETNX mykey 'hi redis'           新建一个mykey
(integer) 0
127.0.0.1:6379[15]> GET mykey                        新建不成功,未能覆盖mykey
"hello redis,www.redis.io"
127.0.0.1:6379[15]> SET count 0                      创建一个键值对count,定义内容为0
OK
127.0.0.1:6379[15]> INCR count                       对count自增加,加1
(integer) 1
127.0.0.1:6379[15]> INCR count
(integer) 2
127.0.0.1:6379[15]> INCR count
(integer) 3
127.0.0.1:6379[15]> INCRBY count 2                   设定增加大小为2
(integer) 5
127.0.0.1:6379[15]> INCRBY count 2
(integer) 7
127.0.0.1:6379[15]> DECR count                       对count自减少,减1
(integer) 6
127.0.0.1:6379[15]> DECR count 
(integer) 5
127.0.0.1:6379[15]> DECRBY count 3                   设定减少大小为3
(integer) 2
127.0.0.1:6379[15]> DEL mykey                        删除mykey
(integer) 1
127.0.0.1:6379[15]> GET mykey                        查看删除情况
(nil)

list列表,列表即数组,L开头left,R开头right,L表示从左侧入站,R表示从右侧入站

127.0.0.1:6379[15]> help @list

  BLPOP key [key ...] timeout -------------------------------------------------- 移除拿到列表的第一个数据,没有元素就阻塞,等待元素插入。当队列使用才有用
  summary: Remove and get the first element in a list, or block until one is available
  since: 2.0.0

  BRPOP key [key ...] timeout
  summary: Remove and get the last element in a list, or block until one is available
  since: 2.0.0

  BRPOPLPUSH source destination timeout --------------------------------------- 从一个列表的最右侧去一个数据放在另一个列表的最左侧,队列有用
  summary: Pop a value from a list, push it to another list and return it; or block until one is available
  since: 2.2.0

  LINDEX key index ----------------------------------------------------------- 按索引取数据
  summary: Get an element from a list by its index
  since: 1.0.0

  LINSERT key BEFORE|AFTER pivot value---------------------------------------- 指定位置插入
  summary: Insert an element before or after another element in a list
  since: 2.2.0

  LLEN key ------------------------------------------------------------------- 取出整个列表的长度(元素个数)
  summary: Get the length of a list
  since: 1.0.0

  LPOP key ------------------------------------------------------------------- 从左侧出站,弹站
  summary: Remove and get the first element in a list
  since: 1.0.0

  LPUSH key value [value ...] ------------------------------------------------ 从左侧入站,压站,自动创建列表
  summary: Prepend one or multiple values to a list
  since: 1.0.0

  LPUSHX key value ----------------------------------------------------------- 只有列表存在时入站
  summary: Prepend a value to a list, only if the list exists
  since: 2.2.0

  LRANGE key start stop ----------------------------------------------------- 获取指定范围内的所有元素
  summary: Get a range of elements from a list
  since: 1.0.0

  LREM key count value ------------------------------------------------------- 删除一个元素
  summary: Remove elements from a list
  since: 1.0.0

  LSET key index value ------------------------------------------------------- 设定指定索引的元素的值
  summary: Set the value of an element in a list by its index
  since: 1.0.0

  LTRIM key start stop ------------------------------------------------------- 修改指定范围的所有元素
  summary: Trim a list to the specified range
  since: 1.0.0

  RPOP key
  summary: Remove and get the last element in a list
  since: 1.0.0

  RPOPLPUSH source destination
  summary: Remove the last element in a list, prepend it to another list and return it
  since: 1.2.0

  RPUSH key value [value ...]
  summary: Append one or multiple values to a list
  since: 1.0.0

  RPUSHX key value
  summary: Append a value to a list, only if the list exists
  since: 2.2.0

示例


127.0.0.1:6379[15]> LPUSH weekdays Sat ----------------------- 创建一个列表,定义第一个字符为Sat
(integer) 1
127.0.0.1:6379[15]> LPUSH weekdays Fri ----------------------- 从左边定义新的字符为Fri
(integer) 2
127.0.0.1:6379[15]> LPUSH weekdays Thu ----------------------- 从左边定义新的字符为Thu
(integer) 3
127.0.0.1:6379[15]> LINDEX weekdays 0 ------------------------ 查看左边第一个字符
"Thu"
127.0.0.1:6379[15]> LINDEX weekdays 2 ------------------------ 查看左边第三个字符
"Sat"
127.0.0.1:6379[15]> LPUSHX weekdays Tue ---------------------- 从左边定义新的字符Tue,没有表的情况下不创建
(integer) 4
127.0.0.1:6379[15]> LINSERT weekdays BEFORE Thu Wed ---------- 在字符Thu之前插入字符Wed
(integer) 5
127.0.0.1:6379[15]> LRANGE weekdays 0 4 ---------------------- 查看表
1) "Tue"
2) "Wed"
3) "Thu"
4) "Fri"
5) "Sat"
127.0.0.1:6379[15]> LPOP weekdays --------------------------- 从左边开始弹出第一个字符
"Tue"
127.0.0.1:6379[15]> LRANGE weekdays 0 4 --------------------- 查看表
1) "Wed"
2) "Thu"
3) "Fri"
4) "Sat"
127.0.0.1:6379[15]> RPOP weekdays -------------------------- 从右边开始弹出第一个字符
"Sat"
127.0.0.1:6379[15]> LRANGE weekdays 0 4 -------------------- 查看表 
1) "Wed"
2) "Thu"
3) "Fri"
127.0.0.1:6379[15]> LLEN weekdays ------------------------- 查看表的字符长度
(integer) 3

hash字段,很多命令是由H开头

127.0.0.1:6379[15]> help @hash

  HDEL key field [field ...] -------------------------------------------------- 删除某个键中的子键
  summary: Delete one or more hash fields
  since: 2.0.0

  HEXISTS key field ----------------------------------------------------------- 判断某个键中子键是否存在
  summary: Determine if a hash field exists
  since: 2.0.0

  HGET key field
  summary: Get the value of a hash field
  since: 2.0.0

  HGETALL key ----------------------------------------------------------------- 获取所有的键值对
  summary: Get all the fields and values in a hash
  since: 2.0.0

  HINCRBY key field increment
  summary: Increment the integer value of a hash field by the given number
  since: 2.0.0

  HINCRBYFLOAT key field increment
  summary: Increment the float value of a hash field by the given amount
  since: 2.6.0

  HKEYS key ------------------------------------------------------------------ 获取一个键中的所有子key
  summary: Get all the fields in a hash
  since: 2.0.0

  HLEN key ------------------------------------------------------------------- 查看表中元素的个数
  summary: Get the number of fields in a hash
  since: 2.0.0

  HMGET key field [field ...]
  summary: Get the values of all the given hash fields
  since: 2.0.0

  HMSET key field value [field value ...] -------------------------------------- 设定或修改多个键值对
  summary: Set multiple hash fields to multiple values
  since: 2.0.0

  HSCAN key cursor [MATCH pattern] [COUNT count]
  summary: Incrementally iterate hash fields and associated values
  since: 2.8.0

  HSET key field value ------------------------------------------------------- 设定或改键值对
  summary: Set the string value of a hash field
  since: 2.0.0

  HSETNX key field value
  summary: Set the value of a hash field, only if the field does not exist
  since: 2.0.0

  HSTRLEN key field
  summary: Get the length of the value of a hash field
  since: 3.2.0

  HVALS key ------------------------------------------------------------------- 获取所有的值
  summary: Get all the values in a hash
  since: 2.0.0
127.0.0.1:6379[15]> HMSET member name jerry age 17 gender female -------- 创建键值对
OK
127.0.0.1:6379[15]> HKEYS member ---------------------------------------- 查询所有键
1) "name"
2) "age"
3) "gender"
127.0.0.1:6379[15]> HVALS member ---------------------------------------- 查询所有值
1) "jerry"
2) "17"
3) "female"
127.0.0.1:6379[15]> HSTRLEN member name -------------------------------- 查看member表的name的字符长度
(integer) 5
127.0.0.1:6379[15]> HGETALL member
1) "name"
2) "jerry"
3) "age"
4) "17"
5) "gender"
6) "female"
127.0.0.1:6379[15]> HDEL member gender ------------------------------- 删除键值对gender
(integer) 1
127.0.0.1:6379[15]> HGETALL member ----------------------------------- 查看所有键值对
1) "name"
2) "jerry"
3) "age"
4) "17"

set集合

127.0.0.1:6379[15]> help @set

  SADD key member [member ...] -------------------------------------- 向一个集合内添加一个成员或者多个成员
  summary: Add one or more members to a set
  since: 1.0.0

  SCARD key --------------------------------------------------------- 得到一个集合内的所有元素的个数
  summary: Get the number of members in a set
  since: 1.0.0

  SDIFF key [key ...] ---------------------------------------------------- 计算两个集合的差集
  summary: Subtract multiple sets
  since: 1.0.0

  SDIFFSTORE destination key [key ...] ---------------------------------- 计算两个集合的差集并存档
  summary: Subtract multiple sets and store the resulting set in a key
  since: 1.0.0

  SINTER key [key ...] --------------------------------------------------- 计算两个集合的交集
  summary: Intersect multiple sets
  since: 1.0.0

  SINTERSTORE destination key [key ...] ---------------------------------- 计算两个集合的交集并存档
  summary: Intersect multiple sets and store the resulting set in a key
  since: 1.0.0

  SISMEMBER key member --------------------------------------------------- 判断是否是集合的成员
  summary: Determine if a given value is a member of a set
  since: 1.0.0

  SMEMBERS key ----------------------------------------------------------- 获取一个集合的所有元素
  summary: Get all the members in a set
  since: 1.0.0

  SMOVE source destination member
  summary: Move a member from one set to another
  since: 1.0.0

  SPOP key [count] ------------------------------------------------------ 从集合中随机删除一个元素
  summary: Remove and return one or multiple random members from a set
  since: 1.0.0

  SRANDMEMBER key [count] ----------------------------------------------- 从集合中随机删除一个元素
  summary: Get one or multiple random members from a set
  since: 1.0.0

  SREM key member [member ...] ------------------------------------------ 指明删除某个元素
  summary: Remove one or more members from a set
  since: 1.0.0

  SSCAN key cursor [MATCH pattern] [COUNT count]
  summary: Incrementally iterate Set elements
  since: 2.8.0

  SUNION key [key ...] -------------------------------------------------- 计算两个集合的并集
  summary: Add multiple sets
  since: 1.0.0

  SUNIONSTORE destination key [key ...] --------------------------------- 计算两个集合的并集并存档
  summary: Add multiple sets and store the resulting set in a key
  since: 1.0.0

示例

127.0.0.1:6379[15]> SADD animals elephant wolf tiger monkey fox dog cat ---- 创建一个集合animals
(integer) 7
127.0.0.1:6379[15]> SADD jiaqin dog pig chicken duck fish ------------------ 创建一个集合jiaqin
(integer) 5
127.0.0.1:6379[15]> SMEMBERS animals --------------------------------------- 查看集合animals
1) "wolf"
2) "tiger"
3) "monkey"
4) "dog"
5) "elephant"
6) "fox"
7) "cat"
127.0.0.1:6379[15]> SMEMBERS jiaqin --------------------------------------- 查看集合jiaqin
1) "duck"
2) "dog"
3) "chicken"
4) "pig"
5) "fish"
127.0.0.1:6379[15]> SCARD animals ----------------------------------------- 查看集合animals内的元素的数量
(integer) 7
127.0.0.1:6379[15]> SPOP animals ------------------------------------------ 集合animals随机删除一个元素
"cat"
127.0.0.1:6379[15]> SREM jiaqin fish -------------------------------------- 集合jiaqin指定删除fish
(integer) 1
127.0.0.1:6379[15]> SMEMBERS jiaqin --------------------------------------- 查看集合jiaqin
1) "chicken"
2) "pig"
3) "duck"
4) "dog"
127.0.0.1:6379[15]> SINTER animals jiaqin --------------------------------- 查看animals和jiaqin的交集
1) "dog"
127.0.0.1:6379[15]> SDIFF animals jiaqin ---------------------------------- 查看animals和jiaqin的差集,与集合的先后有关
1) "elephant"
2) "wolf"
3) "monkey"
4) "tiger"
5) "fox"
127.0.0.1:6379[15]> SDIFF jiaqin animals
1) "duck"
2) "chicken"
3) "pig"
127.0.0.1:6379[15]> SUNION animals jiaqin -------------------------------- 查看animals和jiaqin的并集
1) "duck"
2) "wolf"
3) "tiger"
4) "monkey"
5) "fox"
6) "dog"
7) "elephant"
8) "pig"
9) "chicken"

sorted_set有序集合

127.0.0.1:6379[15]> help @sorted_set

  ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
  summary: Add one or more members to a sorted set, or update its score if it already exists
  since: 1.2.0

  ZCARD key
  summary: Get the number of members in a sorted set
  since: 1.2.0

  ZCOUNT key min max
  summary: Count the members in a sorted set with scores within the given values
  since: 2.0.0

  ZINCRBY key increment member
  summary: Increment the score of a member in a sorted set
  since: 1.2.0

  ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
  summary: Intersect multiple sorted sets and store the resulting sorted set in a new key
  since: 2.0.0

  ZLEXCOUNT key min max
  summary: Count the number of members in a sorted set between a given lexicographical range
  since: 2.8.9

  ZRANGE key start stop [WITHSCORES]
  summary: Return a range of members in a sorted set, by index
  since: 1.2.0

  ZRANGEBYLEX key min max [LIMIT offset count]
  summary: Return a range of members in a sorted set, by lexicographical range
  since: 2.8.9

  ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
  summary: Return a range of members in a sorted set, by score
  since: 1.0.5

  ZRANK key member
  summary: Determine the index of a member in a sorted set
  since: 2.0.0

  ZREM key member [member ...]
  summary: Remove one or more members from a sorted set
  since: 1.2.0

  ZREMRANGEBYLEX key min max
  summary: Remove all members in a sorted set between the given lexicographical range
  since: 2.8.9

  ZREMRANGEBYRANK key start stop
  summary: Remove all members in a sorted set within the given indexes
  since: 2.0.0

  ZREMRANGEBYSCORE key min max
  summary: Remove all members in a sorted set within the given scores
  since: 1.2.0

  ZREVRANGE key start stop [WITHSCORES]
  summary: Return a range of members in a sorted set, by index, with scores ordered from high to low
  since: 1.2.0

  ZREVRANGEBYLEX key max min [LIMIT offset count]
  summary: Return a range of members in a sorted set, by lexicographical range, ordered from higher to lower strings.
  since: 2.8.9

  ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
  summary: Return a range of members in a sorted set, by score, with scores ordered from high to low
  since: 2.2.0

  ZREVRANK key member
  summary: Determine the index of a member in a sorted set, with scores ordered from high to low
  since: 2.0.0

  ZSCAN key cursor [MATCH pattern] [COUNT count]
  summary: Incrementally iterate sorted sets elements and associated scores
  since: 2.8.0

  ZSCORE key member
  summary: Get the score associated with the given member in a sorted set
  since: 1.2.0

  ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
  summary: Add multiple sorted sets and store the resulting sorted set in a new key
  since: 2.0.0

示例

127.0.0.1:6379[15]> ZADD employees 1 tom 3 jerry 9 abama 7 trump 4 bush ---- 创建一个有序数组表
(integer) 5
127.0.0.1:6379[15]> ZSCORE employees trump --------------------------------- 查看trump的值
"7"
127.0.0.1:6379[15]> ZRANK employees trump ---------------------------------- 查看trump的suoyin
(integer) 3
127.0.0.1:6379[15]> ZRANK employees bush ----------------------------------- 查看bush的suoyin
(integer) 2
127.0.0.1:6379[15]> ZRANGE employees 1 3 ----------------------------------- 查看索引为1到3的名单
1) "jerry"
2) "bush"
3) "trump"
127.0.0.1:6379[15]> ZRANGEBYSCORE employees 3 10 --------------------------- 按照得分3到10的顺序排列
1) "jerry"
2) "bush"
3) "trump"
4) "abama"

pubsub发布订阅队列,一个队列相当于一个频道,有人不断在往里面发送数据,有人不断从外面取得数据,一个人订阅了一个频道,订阅者就能接受到频道的更新信息。

127.0.0.1:6379[15]> help @pubsub

  PSUBSCRIBE pattern [pattern ...] ----------------------------------------------- 基于模式定阅
  summary: Listen for messages published to channels matching the given patterns
  since: 2.0.0

  PUBLISH channel message ------------------------------------------------------- 向一个频道放入一则消息
  summary: Post a message to a channel
  since: 2.0.0

  PUBSUB subcommand [argument [argument ...]]---------------------------------- 获取指定发布队列的信息
  summary: Inspect the state of the Pub/Sub subsystem
  since: 2.8.0

  PUNSUBSCRIBE [pattern [pattern ...]] ---------------------------------------- 基于模式取消定阅
  summary: Stop listening for messages posted to channels matching the given patterns
  since: 2.0.0

  SUBSCRIBE channel [channel ...] --------------------------------------------- 定阅频道
  summary: Listen for messages published to the given channels
  since: 2.0.0

  UNSUBSCRIBE [channel [channel ...]] ----------------------------------------- 取消定阅
  summary: Stop listening for messages posted to the given channels
  since: 2.0.0

示例

本机ssh 1:发布
127.0.0.1:6379[15]> PUBLISH ops 'kernel is come'
(integer) 1
127.0.0.1:6379[15]> PUBLISH ops 'kernel is new'
(integer) 1
[root@C7mini ~]#redis-cli
本机ssh 2:定阅、接收
127.0.0.1:6379> SUBSCRIBE ops dev
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "ops"
3) (integer) 1
1) "subscribe"
2) "dev"
3) (integer) 2
1) "message"
2) "ops"
3) "kernel is come"
1) "message"
2) "ops"
3) "kernel is new"
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • Redis介绍 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salv...
    haoxilu阅读 5,958评论 0 10
  • 什么是redis 键值类型 String字符类型 map散列类型 list列表类型 set 集合类型 有序集合类型...
    持续进步者阅读 377评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,600评论 18 139
  • 1.下载 进入官方下载下载稳定版本的redis. 2.解压安装包到指定目录(个人喜好而定,我的放到了文稿/User...
    南飞孤鸿阅读 6,739评论 0 3
  • 精彩语录 ■九幽阴灵,诸天神魔。以我血躯,奉为牺牲。三生七世,永堕阎罗。只为情故,虽死不悔。 ■我摘了这花,便是这...
    hx78阅读 431评论 0 1