redis基本使用
前言
开发为什么会用到redis:举个例子,假如自己公司产品中有100万用户的签到信息,
用户一旦签到那么当日便不会再更新信息,那么你每次请求用户信息时,
如果都要请求数据库,那么数据库效率明显会低下,
所以像这种不经常变动的信息且数据量大的情况下,用redis高速读取会大大提升性能。
redis支持什么格式的数据
- string(字符串) 适合存储简单数据例如 "签到天数"当然也可以存储字符串
- list(链表) 适合存储消息列表类似的信息
- set(集合) 适合存储共有好友,共有喜好类似的信息
- zset(sorted set –有序集合) 适合存储排行榜类似信息
- hash(哈希类型) 适合存储对象,例如用户信息
创建不同格式的数据
-
string格式
set user.name.str zhangpeng
-
hash格式
hmset user.name.hash name1 "zhangpeng" name2 "zhangpeng1"
-
list格式
lpush user.name.list "zhangpeng1" lpush user.name.list "zhangpeng2" lpush user.name.list "zhangpeng3"
-
set格式
sadd user.name.set "zhangpeng1" sadd user.name.set "zhangpeng2" sadd user.name.set "zhangpeng3"
-
zset格式
zadd user.name.zset 0 "zhangpeng" zadd user.name.zset 1 "zhangpeng1" zadd user.name.zset 2 "zhangpeng2"
通过key查询对应value字段
-
string格式
#通过key寻找value get user.name.str
-
hash格式
# 通过key里面的对象获取 hmget user.name.hash name1 #存在多个对象,查询该key对应的所有对象 hgetall user.name.hash
-
list格式
lindex user.name.list 0 #输出坐标0-10的字段 lrange user.name.list 0 10
-
set格式
smembers user.name.set
-
zset格式
#从大到小排序 zrevrangebyscore user.name.zset 10 0 # 从小到大排序 zrangebyscore user.name.zset 0 3
删除value
-
string格式
# 通过key删除value del user.name.str
-
hash格式
# 删除该key hdel user.name.hash # 存在多个对象,只想删除一个对象 hdel user.name.hash name1
-
list格式
#删除该key lpop user.name.list #删除坐标为2的字段 blpop user.name.list 2 #删除两个内容为张鹏的字段 lrem user.name.list -2 zhangpeng
-
set格式
# 直接删除key del user.name.set #删除某一个字段内容或多个 srem user.name.set zhangpeng1 zhangpeng2
-
zset格式
del user.name.set # 删除某一个字段内容或多个 zrem user.name.set zhangpeng1 zhangpeng2
修改value
-
string格式
#通过key修改value set user.name.str 张鹏
-
hash格式
# 修改name1的字段 hset user.name.hash name1 zhangpeng
-
list格式
# 修改坐标为2的字段 lset user.name.list 2 zhangpeng