目录
1.redis的启动
-
服务端启动
-
redis-server
-
-
客户端启动
-
redis-cli
-
redis-cli --raw
-
支持中文的启动方式
-
-
2.redis基本操作
-
ping
-
测试与redis服务器是否联通
-
-
select
-
选择数据库,redis有从0到15,16个数据库
-
select 3 选择3号数据库
-
select 0 选择0号数据库
-
登录到redis客户端,如果没有做任何select操作,默认选择的是0号数据库
-
3.redis的数据类型
-
redis保存的数据都是按照键值对来保存
-
键(key)
-
值(value)
-
键的数据类型都是字符串
-
值的数据类型有以下五种
-
字符串(string)
-
哈希(hash)
-
列表(list)
-
无序集合(set)
-
有序集合(zset)
-
4.字符串操作
添加修改值
-
set 键 值
-
如果键不存在,就是添加
-
如果键存在,就是修改
-
set user1 aaa
# 添加一个键user1 值为aaa
set user1 bbb
# 把键user1 的值修改为bbb
-
setex 键 过期时间 值
-
过期时间单位为秒
-
setex user2 3 bbb
# 添加一个键user2 值为bbb,过期时间为3秒
-
添加多个键值对
-
mset 键1 值1 键2 值2 .........
-
mset use3 ccc user4 ddd user5 eee
# 同时添加3个键值对
-
已有值后面追加
-
append 键 值
-
append haha
#键user1的值后面追加内容哈哈
获取值
-
get 键
get user1
# 获取user1对应的值
-
mget获取多个值
mget user1 user4 user5
# 一次获取多个值
-
删除值
-
del 键1 键2 键n.....
-
del user1 user2
# 同时删除user1和user2两个键和键对应的值
5.键相关操作
查找键
-
keys 键名
-
可以支持*
keys user1
# 查找键user1是否存在
keys *
# 显示所有的键
判断键是否存在
-
exists 键名
-
如果键存在,返回1
-
不存在,返回0
-
exists user1
# 判断user1是否存在
查看键对应的值类型
-
type 键
type user2
# 查看user2对应的值的类型
设置已有键的过期时间
-
expire 键 秒数
expire user2 100
# 设置user2 的过期时间为100秒
查看键过期时间
-
ttl 键
-
-1永远有效
-
大于0,剩余有效时间,单位秒
-
-2,键不存在
-
6.哈希操作
添加值
-
hset 键 字段 值
hset huser1 name tom
# 增加一个hash类型的键值对,字段为name,值为tom
添加多个值
-
hmset 值 字段1 值1 字段2 值2.......
hmset huser2 name mary sex female
# 添加一个huser2键,字段有两个
获取字段
-
hkeys 键
-
获取指定键的所有字段名
-
hkeys huser2
# 获取键huser2所有的字段
获取字段对应的值
-
hget 键 字段
hget huser2 name
# 获取键huser2,字段name的值
获取多个字段的值
-
hmget 键 字段1 字段2.......
hmget huser2 name sex
# 获取huser2name和sex字段的值
获取所有字段的值
-
hvals 键
hvals huser2
# 获取huser2所有字段的值
获取所有字段名包括值
-
hgetall 键
hgetall huser1
# 获取huser1所有的字段名和值
删除字段
-
hdel 键 字段名
hdel huser2 sex
# 把键huser2 的字段sex删除
删除键
-
del 键
7.列表list
添加值
-
lpush 键 值1 值2 .....
-
从列表左侧添加值
-
lpush luser1 aa
# 新建一个键luser1,左侧添加值aa
-
rpush 键 值1 值2......
-
从列表右侧添加值
-
rpush luser1 bb cc dd
# 从列表右侧添加三个值bb cc dd
插入值
-
linsert 键 before或者after 值 新值
-
在指定的值前面或者后面插入新值
-
linsert luser1 before cc 11
# 在cc前面插入新值11
linsert luser1 after cc 22
# 在cc后面插入新值22
获取值
-
lrange 键 start stop
-
start代表开始索引
-
stop结束索引
-
第一个值的索引为0,最后一个值的索引为-1
-
lrange luser1 0 -1
# 获取列表所有值
lrange luser1 2 -1
# 从第三个元素开始获取到最后的值
修改值
-
lset 键 索引 值
-
修改指定索引的值
-
lset luser1 1 china
# 把第二个元素的值改为china
删除值
-
lrem 键 count 值
-
count = 0 删除指定的所有值
-
count < 0,代表从右往左删除指定数量的值
-
count >0,代表从左往右删除指定数量的值
-
lrem luser2 -1 h0
# 从后往前,从右往左,删除一个h0
lrem luser2 0 h0
# 删除所有的h0
8.集合
添加值
-
sadd 键 值1 值2 值3.......
-
集合添加值
-
sadd suser1 aa bb cc
# 添加三个值
获取值
-
smembers 键
-
获取集合的值
-
smembers suser1
# 获取键suser1所有的值
删除值
-
srem 键 值
-
删除指定的值
-
srem suser1 cc
# 删除键user1的值cc
9.有序集合
添加值
-
zadd 键 score1 值1 score2 值2.
-
添加值
-
zadd zuser1 1 aa 3 dd 5 ee 2 cc
# 添加三个值,score分别为1,3,5,2
# 添加的值会按照score从小到大排序
获取值
-
zrange 键 start stop [withscores]
-
start从0开始
-
最后一个索引为-1
-
withscores代表同时获取score
-
zrange zuser1 0 -1 withscores
# 获取zuser1所有的值和score
通过score获取值
-
zrangebyscore 键 min max
-
min代表score的起始值
-
max代表score的结束值
-
zrangebyscore zuser1 2 6
# 获取score从2到6之间的值
通过值得到score
-
zscore 键 值
-
得到指定值的score
-
zscore zuser1 dd
# 得到值dd的score
删除值
-
zrem 键 值
-
删除指定的值
-
zrem zuser1 dd
# 删除值dd
通过score删除值
-
zremrangebyscore 键 min max
-
min是要删除score的最小值
-
max是要删除score的最大值
-
zremrangebyscore zuser1 0 10
# score从0到10之间的值都删除