redis 知识点
-
redis是一个开源的、使用C语言编写的、支持网络交互的、基于内存支持持久化的Key-Value数据库。
redis官网地址,http://redis.io/。 -
redis 命令:
注:redis命令不区分大小写
redis 命令 | 说明 |
---|---|
sudo make install PREFIX=/usr/local/redis | 安装到指定目录(终端执行) |
./redis-server | 启动(终端执行) |
./redis-cli | 打开命令窗口(终端执行) |
./redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q | 性能测试(终端执行) |
set [key] [value] | 设置string类型 |
get [key] | 获取string值 |
del [key] | 删除key |
dump key | 序列化给定 key ,并返回被序列化的值 |
exists key | 检查给定 key 是否存在 |
expire key seconds | 为 key 设置过期时间 |
expireat key timestamp | 为 key 设置过期时间 |
pexpire key milliseconds | 设置 key 的过期时间以毫秒计 |
pexpireat key milliseconds-timestamp | 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 |
keys pattern | 查找所有符合给定模式( pattern)的 key |
move key db | 将当前数据库的 key 移动到给定的数据库 db 当中 |
persist key | 移除 key 的过期时间,key 将持久保持 |
pttl key | 以毫秒为单位返回 key 的剩余的过期时间。 |
ttl key | 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live) |
randomkey | 从当前数据库中随机返回一个 key 。 |
rename key newkey | 修改 key 的名称 |
renamenx key newkey | 仅当 newkey 不存在时,将 key 改名为 newkey 。 |
type key | 返回 key 所储存的值的类型。 |
hmset user:1 username runoob password runoob | 设置hash类型 |
hgetall user:1 | 获取hash值 |
lpush key value [value...] | 设置list类型 |
lrange key 0 10 | 获取list值 |
sadd key member [member...] | 设置set类型 |
smembers key | 获取set值 |
zadd key score member [score member ...] | 设置zset类型 |
zrangebyscore key min max | 获取zset值 |
pfadd key element [element ...] | 添加指定元素到 HyperLogLog 中。 |
pfcount key [key ...] | 返回给定 HyperLogLog 的基数估算值。 |
config get loglevel | 查看配置项loglevel |
config get * | 查看所有配置项 |
config set loglevel "notice" | 设置配置项loglevel |
config get * | 查看所有配置项 |
ping | 检测 redis 服务是否启动 |
redis-cli -h host -p port -a password | 在远程redis服务上执行命令 |
pubsub subcommand [argument [argument ...]] | 查看订阅与发布系统状态。 |
publish channel message | 将信息发送到指定的频道。 |
subscribe channel [channel ...] | 订阅给定的一个或多个频道的信息。 |
multi | 标记一个事务块的开始 |
exec | 执行所有事务块内的命令 |
discard | 取消事务,放弃执行事务块内的所有命令 |
INFO [section] | 获取 Redis 服务器的各种信息和统计数值 |
CLIENT KILL [ip:port] [ID client-id] | 关闭客户端连接 |
CLIENT LIST | 获取连接到服务器的客户端连接列表 |
CLIENT SETNAME connection-name | 设置当前连接的名称 |
CLIENT GETNAME | 获取连接的名称 |
CLUSTER SLOTS | 获取集群节点的映射数组 |
COMMAND INFO command-name [command-name ...] | 获取指定 Redis 命令描述的数组 |
DBSIZE | 返回当前数据库的 key 的数量 |
FLUSHALL | 删除所有数据库的所有key |
FLUSHDB | 删除当前数据库的所有key |
MONITOR | 实时打印出 Redis 服务器接收到的命令,调试用 |
ROLE | 返回主从实例所属的角色 |
config get dir | 获取 redis 安装目录 |
save | 创建当前数据库的备份。如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可 |
CONFIG get requirepass | 查看redis服务是否设置了密码验证 |
CONFIG set requirepass [password] | 为redis服务设置密码 |
auth [password] | 使用密码验证,来登陆redis服务 |
-
redis指定安装到某个目录:sudo make install PREFIX=/usr/local/redis。
-
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
Redis hash 是一个键名对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。每个 hash 可以存储 232 -1 个键值对(40多亿)。
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。列表最多可存储 232 - 1 元素 (每个列表可存储40多亿)。
Redis的Set是string类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 -
问题:redis如何知道哪些key被watch?
答:应该是没有提供相应的命令;而是提供了unwatch
来取消 WATCH 命令对所有 key 的监视。