垃圾萌新,因为要用到一些东西所以现学,随手记录一下
内容可能有点勾史
Redis
Ref:https://zhuanlan.zhihu.com/p/469102289
Remote Dictionary Server / 远程字典服务,开源软件
基于内存的 key-value 的 NOSQL 数据库
首先想办法安装。以下假如安装目录是 /etc/redis
:
/etc/redis/bin
里是一些常用可执行文件
- redis 后台启动
redis-server [<configfile>]
其中 <configfile>
是一份配置文件。示例配置文件在 /etc/redis/redis.conf
,可以 cp
出来然后修改
查看 redis 是不是后台活着:
ps aux | grep redis
- redis 客户端
redis-cli [-h <host>] [-p <port>]
连接到某 redis 数据库。host 和 port 可以不填,默认 127.0.0.1:6379
- 关闭 redis 后台
法一:首先 ps
一下得到 redis 后台 pid,然后直接 kill <pid>
纱了。不优雅
法二:开客户端连接上,然后执行命令 shutdown
。或者直接 redis-cli [options] shutdown
也行
作为 key-value 数据库,redis 存储的所有 pair 的键名 key 都是字符串,而 value 支持的数据结构类型有很多种
数据类型有 string,hash,list,set,zset(有序集合)。同时每种数据结构的底层实现有不同种,称为「内部编码」,redis 会根据存储内容自己选择如何存数据
- 使用
object encoding <key>
来查询<key>
键对应的 value 的内部编码
以下简介常用命令
完整介绍可以在 redis-cli
里 help <command>
,或者去翻 redis 文档
全局命令
-
keys <pattern>
:Returns all key names that match a pattern.比如
keys *
返回所有键 -
dbsize
:返回键总数 -
exiests <key> [<key>...]
:检查键是否存在 -
del <key> [<key>...]
:删除键 -
expire <key> <second>
:设置键<key>
在<second>
后过期 -
ttl <key>
:返回<key>
多长时间后过期如果一个键未被设置 ttl 那他就是无限期的,
ttl
返回 -1一个已死的键,或者是不存在的键(其实是一种东西),
ttl
返回 -2 -
type <key>
:返回<key>
所存的值的数据结构类型
string
set <key> <value> [<ex> seconds|<px> milliseconds] [nx|xx]
,设置 kv 对ex
:设置秒级过期时间px
:毫秒级过期时间nx
:键必须之前不存在才能设置成功。xx
:键必须存在才能设置成功。可单独用setnx
和setxx
替代
get <key>
获取值mset <key> <value> [<key> <value>...]
:批量设置值mget <key> [<key>...]
:批量获取值incr <key>
:将值为整数字符串的 +1- 值不是表示合法整数的字符串,返回错误
- 值是整数,返回自增后的结果
- 键不存在,创建键,默认初始为 0,在此之上自增 1
decr <key>
:自减,同上incrby <key> <increment>
:增加指定值decrby <key> <increment>
:减去指定值incrbyfloat <key> <increment>
:浮点
hash
hash 数据结构维护的是一个 hash table,里面存着一堆 kv 对,被称为 field-value
当一个哈希表里的所有 field 都被删干净了,其 key 和哈希表自动消失
-
hset <key> <field> <value> [<field> <value>...]
创建或者修改
<key>
指向的哈希表里的若干 field-value pair。返回新创建的 field 有多少个 -
hget <key> <field>
:返回<key>
指向的哈希表里<field>
的 value -
hdel <key> <field> [<field>...]
:删除 field -
hlen <key>
:返回一个哈希表里的 field 个数 -
标签:民科,...,field,元素,redis,技术,value,速记,返回 From: https://www.cnblogs.com/Xiwon/p/18065047hmset <key> <field> <value> [<field> <value>...]
:批量设置 field-value 对。hmset
和hset
似乎是效果相同的