Redis入门实战(3)-命令行
本文主要介绍redis命令行的使用,使用到的软件版本:Java 1.8.0_191、Redis 5.0.8、Centos 7.6。
1、redis-cli语法
redis-cli默认在安装安装目录的src下,语法如下:
redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <hostname> 指定主机,默认为127.0.0.1
-p <port> 指定端口,默认为6379
-a <password> 指定密码
-c 启用集群模式
--cluster <command> 集群相关操作
--help 打印帮助
--version 打印版本信息
例子:
cd /home/hadoop/app/redis-5.0.8/src ./redis-cli
2、命令
2.1、一般性命令
info 查看整体信息
auth password 输入redis密码
select index 切换到指定的数据库
quit/exit 关闭当前连接
2.2、配置相关
config get pattern 查看匹配的配置项
config set item item_value 设置配置项
例子:
127.0.0.1:6379> config get *
2.3、键(key)
del key 删除key
exists key 检查key是否存在
expire key seconds 设置key的过期时间,以秒计。
pexpire key milliseconds 设置key的过期时间,以毫秒计。
keys pattern 查找所有符合给定模式的key
persist key 移除key的过期时间,key将持久保持。
pttl key 以毫秒为单位返回key的剩余的过期时间。
ttl key 以秒为单位返回key的剩余的过期时间。
rename key newkey 修改key的名称
renamenx key newkey 仅当newkey不存在时,将key改名为newkey。
type key 查看key所储存的值的类型
2.4、字符串
set key value 设置key的值
setnx key value 只有在key不存在时设置key的值
get key 获取key的值
mset key value [key value ...] 同时设置一个或多个key-value 对
msetnx key value [key value ...] 同时设置一个或多个key-value对,当且仅当所有给定key都不存在。
mget key1 [key2..] 获取所有给定key的值
例子:
127.0.0.1:6379> set a hello 127.0.0.1:6379> get a
2.5、哈希(Hash)
Redis hash是一个string类型的field和value的映射表,有点像Java中的Map,hash特别适合用于存储对象。
hdel key field1 [field2] 删除一个或多个哈希表字段
hexists key field 查看哈希表key中,指定的字段是否存在
hget key field 获取存储在哈希表中指定字段的值
hset key field value 将哈希表key中的字段field的值设为value
hgetall key 获取在哈希表中指定key的所有字段和值
hkeys key 获取所有哈希表中的字段
hlen key 获取哈希表中字段的数量
hmget key field1 [field2] 获取所有给定字段的值
hmset key field1 value1 [field2 value2] 同时将多个field-value(域-值)对设置到哈希表key中
hsetnx key field value 只有在字段field不存在时,设置哈希表字段的值
例子:
127.0.0.1:6379> hmset user1 name "mayun" location "杭州" age 50 127.0.0.1:6379> hgetall user1
2.6、列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部或者尾部。
lpush key value1 [value2] 将一个或多个值插入到列表头部
lpushx key value1 [value2] 将一个或多个值插入到已存在的列表头部
rpush key value1 [value2] 将一个或多个值插入到列表尾部
rpushx key value1 [value2] 将一个或多个值插入到已存在的列表尾部
lrange key start stop 获取列表指定范围内的元素
lset key index value 通过索引设置列表元素的值
lpop key 移出并获取列表的第一个元素
rpop key 移出并获取列表的最后一个元素
例子:
127.0.0.1:6379> lpush list1 a b c 127.0.0.1:6379> lrang list1 0 10
2.7、集合(Set)
sadd key member1 [member2] 向集合添加一个或多个成员
scard key 获取集合的成员数
sismember key member 判断member元素是否是集合key的成员
smembers key 返回集合中的所有成员
srem key member1 [member2] 移除集合中一个或多个成员
例子:
127.0.0.1:6379> sadd set1 a b c 127.0.0.1:6379> smembers set1
2.8、有序集合(sorted set)
Redis有序集合的每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。
zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zcard key 获取有序集合的成员数
zincrby key increment member 有序集合中对指定成员的分数加上增量increment
zrange key start stop [WITHSCORES] 通过索引区间返回有序集合指定区间内的成员
zscore key member 返回有序集中,成员的分数值
例子:
127.0.0.1:6379> zadd sortedset1 1 java 2 c++ 3 js 3 css 127.0.0.1:6379> zrange sortedset1 0 10
2.9、HyperLogLog
Redis HyperLogLog是用来做基数统计用的,就是统计一个数据集中不重复元素的个数。
pfadd key element [element ...] 添加指定元素到HyperLogLog 中
pfcount key [key ...] 返回给定HyperLogLog的基数估算值
例子:
127.0.0.1:6379> pfadd hyper1 java c++ java js 127.0.0.1:6379> pfcount hyper1