- 字符串String
- 哈希Hash
- 列表List
- 集合Set
- 有序集合ZSet
select
默认配置文件配置了16个数据库,编号从0到15。
通过select 0
进行切换。为了学习redis,可以选择select 1
将1作为学习使用。
字符串类型
本机直接使用redis-cli
或者指定IP和端口进行连接redis-cli -h localhost -p 6379
。
# 增加使用set
127.0.0.1:6379> set name 学习redis
OK
# 获取使用get
127.0.0.1:6379> get name
"\xe5\xad\xa6\xe4\xb9\xa0redis"
如果出现中文显示乱码,可以添加参数redis-cli --raw
[root@i-kqtze87x ~]# redis-cli --raw
127.0.0.1:6379> get name
学习redis
# 更新,再次赋值就是更新操作
127.0.0.1:6379> get name
学习redis
127.0.0.1:6379> set name 学习python
OK
127.0.0.1:6379> get name
学习python
# 删除key,
127.0.0.1:6379> del name
1
127.0.0.1:6379> get name
127.0
过期时间,单位为秒
# setex 设置过期时间
127.0.0.1:6379> setex name 10 xiaowang
OK
127.0.0.1:6379> get name
xiaowang
# 查看当前剩余时间
127.0.0.1:6379> ttl name
2
127.0.0.1:6379> ttl name
-2
127.0.0.1:6379> get name
127.0.0.1:6379> ttl name
-2
# 默认是永久存在的,ttl为-1
127.0.0.1:6379> ttl name
-1
# expire修改name的过期时间
127.0.0.1:6379> expire name 3
1
127.0.0.1:6379> ttl name
1
# 当过期之后为-2,对一个不存在的key使用ttls也是-1,表示不存在
127.0.0.1:6379> ttl name
-2
mset和mget一次设置或者获取多个值
127.0.0.1:6379> mset name xiaozhang age 18
OK
127.0.0.1:6379> get name
xiaozhang
127.0.0.1:6379> get age
18
127.0.0.1:6379> mget name age
xiaozhang
18
append追加数据
127.0.0.1:6379> append name aaaa
15
127.0.0.1:6379> get name
xiaozhangaaaa
keys查看有哪些key
注意生产环境,不要轻易使用这个,如果数据量非常大会卡死。
127.0.0.1:6379> keys *
age
name
# 支持模糊查询
127.0.0.1:6379> keys a*
age
127.0.0.1:6379>
exists判断key是否存在
127.0.0.1:6379> exists hello
0
127.0.0.1:6379> exists age
1
type查看key对应的数据类型
127.0.0.1:6379> type hello
\none
127.0.0.1:6379> type age
string
hash 用于存储字典
127.0.0.1:6379> hset user_xiaoming name xiaoming age 18 gender 男
3
127.0.0.1:6379> hget user_xiaoming name
xiaoming
127.0.0.1:6379> hget user_xiaoming gender
男
早起hset只能赋值一个值hset user name xiaoming
。目前hset支持一次设置多个值,hmset也是用于设置多个值,redis4.0开始废弃hmset。
# hmget 用于一次获取某个key对应的多个value
127.0.0.1:6379> hmget user_xiaoming name age
小明
18
# hgetall获取某个key的所有键值对
127.0.0.1:6379> hgetall user_xiaoming
name
小明
age
18
gender
男
# 获取所有的key
127.0.0.1:6379> hkeys user_xiaoming
name
age
gender
# 获取所有的value
127.0.0.1:6379> hvals user_xiaoming
小明
18
男
# hdel 删除字典中的某个key
127.0.0.1:6379> hgetall user_xiaoming
name
小明
age
18
gender
男
127.0.0.1:6379> hdel user_xiaoming name
1
127.0.0.1:6379> hgetall user_xiaoming
age
18
gender
男
# del删除整个字典
127.0.0.1:6379> del user_xiaoming
1
127.0.0.1:6379> hgetall user_xiaoming
列表
# lpush左插入 rpush 右插入
# 如果lpush list a b c,列表中的元素其实是c,b,a
127.0.0.1:6379> lpush list list1
1
127.0.0.1:6379> lpush list list2
2
127.0.0.1:6379> lpush list list3
3
# lrange 查询数据
127.0.0.1:6379> lrange list 0 10
list3
list2
list1
# lrange从0开始,一直加不会加到-1,因此表示查询所有的内容
# 如果只想获取某一个,lrange list 0 0
127.0.0.1:6379> lrange list 0 -1
list3
list2
list1
# lrem 移除元素 lrem key count value
# count 为0 移除所有的元素
# count 大于0 ,从左边移除指定数量的元素
# count 小于0,从右边移除指定数量的元素
127.0.0.1:6379> lrange list1 0 -1
a
c
b
a
a
b
a
127.0.0.1:6379> lrem list1 1 a
1
127.0.0.1:6379> lrange list1 0 -1
c
b
a
a
b
a
# lset 修改
127.0.0.1:6379> lrange list2 0 -1
c
b
a
127.0.0.1:6379> lset list2 0 100
OK
127.0.0.1:6379> lrange list2 0 -1
100
b
a
# 如果index没有内容,会报错
127.0.0.1:6379> lset list2 100 1000
ERR index out of range
# 插入数据
127.0.0.1:6379> lrange list2 0 -1
100
b
a
# 在b前面插入b1
127.0.0.1:6379> linsert list2 before b b1
4
# 在b后面插入b2
127.0.0.1:6379> linsert list2 after b b2
5
127.0.0.1:6379> lrange list2 0 -1
100
b1
b
b2
a
# 删除元素
127.0.0.1:6379> lrange list2 0 -1
100
b1
b
b1
a
# 左删除
127.0.0.1:6379> lpop list2
100
# 右删除
127.0.0.1:6379> rpop list2
a
set 无序集合 自动去重
# sadd 添加1个或者多个元素,自动去重
127.0.0.1:6379> sadd country China China Vietnam Cambodia
3
# smembers 查询所有元素
127.0.0.1:6379> smembers country
Cambodia
China
Vietnam
# 删除1个或者多个元素
127.0.0.1:6379> srem country China Vietnam
2
127.0.0.1:6379> smembers country
Cambodia
zset 有序集合 通过分数进行排序
# zadd 添加1个或者多个元素
127.0.0.1:6379> zadd course 1 redis介绍 2 redis安装 3 redis数据恢复
3
# zrange 查询元素
127.0.0.1:6379> zrange course 0 -1
redis介绍
redis安装
redis数据恢复
# zadd 插入元素,如果score和之前的一致,则修改元素
127.0.0.1:6379> zadd course 2.5 redis数据类型
1
127.0.0.1:6379> zrange course 0 -1
redis介绍
redis安装
redis数据类型
redis数据恢复
# zrem删除元素
127.0.0.1:6379> zrem course redis数据类型
1
# zremrangebyscore 根据范围删除元素
127.0.0.1:6379> zremrangebyscore course 2 100
2
127.0.0.1:6379>
# zscore根据值获取score
127.0.0.1:6379> zadd course 20 abc
1
127.0.0.1:6379> zscore course abc
20