远程连接
redis-cli -h host -p port -a password
# 中文乱码
--raw
基础数据类型
string
- String
# 创建key
> set name zhangsan
OK
# 获取key
> get name
"zhangsan"
# 同时设置多项和获取多项
> set name zhangsan
> set age 18
> mset city wuhan country China
> mget name age city country
1) "zhangsan"
2) "18"
3) "wuhan"
4) "China"
# 删除key
> del name
(integer) 1
> get name
(nil)
# 检查是否存在
> exists name
(integer) 1
> exists age
(integer) 0
- 数字类型的String
> set n 11
OK
> get n
"11"
# 依次加一
> incr n
(integer) 12
# 依次减一
> decr n
(integer) 11
# 加特定值
> incrby n 10
(integer) 14
# 减特定值
> decrby n 10
(integer) 4
set
string类型的无序集合, 底层是 HashTable 数据结构,
字符串元素是无序的,且不能重复
# 添加
> sadd friends zhangsan
(integer) 1
> sadd friends lisi
(integer) 1
# 查看
> smembers friends
1) "lisi"
2) "zhangsan"
# 移除指定值
> srem friends lisi
# 随机删除
> spop friends
"zhangsan"
# 判断元素是否存在
> sismember friends zhangsan
(integer) 1
zset
# 添加
> zadd country 1 China
(integer) 1
> zadd country 1 UK
(integer) 1
# 查看
> zrange country 0 -1
1) "China"
2) "UK"
> zrange country 0 -1 withscores
1) "China"
2) "1"
3) "UK"
4) "1"
# 移除指定值
> zrem country UK
(integer) 1
List
# 从左边依次插入
> lpush rlist zhangsan lisi
(integer) 2
> lpush rlist wangwu
(integer) 3
# 从右边依次插入
> rpush rlist chenliu
(integer) 4
# 查看
> lrange rlist 0 -1
1) "wangwu"
2) "lisi"
3) "zhangsan"
4) "chenliu"
# 从左边依次删除
> lpop rlist
"wangwu"
# 从左边依次删除
> rpop rlist
"chenliu"
> lrange rlist 0 -1
1) "lisi"
2) "zhangsan"
# 查看索引为1的key值
> lindex rlist 1
"zhangsan"
# 修改索引为1的key值
> lset rlist 1 lili
OK
> lrange rlist 0 -1
1) "lisi"
2) "lili"
Hash
类似于Java中的Map,是一个 String 类型的 field 和 value 的映射表(键值对集合),并且特别适合用来存储对象
# hset
> hmset user name zhangsan age 18 sex male
OK
# hget
> hget user name
"zhangsan"
# hmget
> hmget user name
1) "zhangsan"
# 查看所有值
hkeys user
1) "name"
2) "age"
3) "sex"
4) "height"
# 修改
> hset user height 145
(integer) 0
> hmget user height
1) "145"
- 过期时间
- expire: 设置过期时间
- ttl: 获取过期时间,返回-1表示没有设置,-2表示数据不存在
> set name zhangsan
OK
> expire name 20
(integer) 1
> ttl name
(integer) 4
> ttl name
(integer) -2