redis
redis
是开源的,内存数据库,可以用于数据库缓存和消息中间件,支持多种数据类型,字符串,哈希,列表,集合,有序集合等
redis-cli
redis-server.exe
# 带样式 前提你装了
/etc/init.d/redis-server stop
---> 停止
/etc/init.d/redis-server start
---> 启动
/etc/init.d/redis-server restart
---> 重启
redis
数据库redis-cli -h <hostname> -p <port>
select 数据库名
注:几号数据库或是新建的数据库名
通过所key查询所有值
查询所有键
keys *
查询包含a的键
keys ‘a*‘
type key
字符串 string
哈希 hash
列表 list
集合 set
有序集合 zset
设置的值不存在就添加,存在则修改
set key value
setex key 秒数 value
mset key1 value1 key2 value2 ...
append ‘key‘ ‘value‘
理解为常用append尾部追加
get key
mget key1 key2...
如果存在返回1,不存在返回0
exists key1
del key1 key2...
可单个,可多个
expire ‘key‘ 秒数
ttl key
用于存储对象,对象的结构为属性、值+
值的类型为string
hset key field value
key的属性field为value
个人理解:字典的值是另一个字典
hmset key field1 value1 field2 value2 ...
hkeys key
获取指定属性的值
hget key field
hmget key field1 field2 ...
hvals key
删除整个hash键及值 , 使用del命令
删除属性,属性对应的值会被一起删除
hdel key field1 field2 ...
列表的元素数据类型string
按插入数据顺序排序
lpush key value1 value2 ...
rpush key value1 value2 ...
添加完第一个值,在第一个值左侧或右侧向外添加数据元素
linsert key before或after 现有元素 新元素
linsert key before 目标元素 新添元素
在目标元素之前添加 新元素
linsert key after 目标元素 新添元素
在目标元素之后添加 新元素
lrange key
lrange key 起始下标 结束下标
设置的下标区间 包含该下标 左闭右闭
lset key index value
例:lset a 1 z
修改key为a的下标为1的元素值为z
lren key count value
count>0 从头往尾移除
count<0 从尾往头移除
count=0 移除所有
set & zset
无序集合
元素为string类型
元素具有唯一性,不重复 去重
对于集合没有修改操作
sadd key member1 member2 ...
sadd key 元素1 元素2 ...
smembers key
srem key member1 member2 ...
删除指定key的单个或多个元素
zset
sorted set 有序集合
元素为string类型
元素具有唯一性,不重复 去重
每个元素都会关联一个double类型的score,表示权重
注:没有修改操作
zadd key score1 member1 score2 member2 ...
score 值为权重(可以理解为排序的正向顺序,数值从小到大)
member1 值为元素 string 类型
zrange key 起始下标 结尾下标
zrangebyscore key min max
min 和 max 值取决于score值
zscore key member
score 值 可以称为 权值
zrem key memeber1 member2 ...
zremrangebyscore key min max
命令及描述:
1DISCARD 取消事务,放弃执行事务块内的所有命令。
2EXEC 执行所有事务块内的命令。
3MULTI 标记一个事务块的开始。
4UNWATCH 取消 WATCH 命令对所有 key 的监视。
5[WATCH key key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
可以一次执行多个命令, 并且带有以下两个重要的保证:
批量操作在发送 EXEC 命令前被放入队列缓存。
收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
开始事务。
命令入队。
执行事务。
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days"
QUEUED
redis 127.0.0.1:6379> GET book-name
QUEUED
redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series"
QUEUED
redis 127.0.0.1:6379> SMEMBERS tag
QUEUED
redis 127.0.0.1:6379> EXEC
1) OK
2) "Mastering C++ in 21 days"
3) (integer) 3
4) 1) "Mastering Series"
2) "C++"
3) "Programming"
原文:https://www.cnblogs.com/canhun/p/11123010.html