二:redis的数据类型
1:String
redis的操作
1:
value的设置与获取: set username xiaohei;get username
2:
整数的自增与自减:set age 23->i
自增(+1):incr age==>age=24
自减(-1):decr age==>age=23
指定自增数值:incrby age 10==>age=33
指定自减数值:decrby age 13==>age=20
3:
获取redis的所有的key:keys *
redis的key是怎样设置的?
思考:在MySQL里数据时怎样存储的?--->使用it_user表(由行和列组成)存储
如果要将上表的数据存储到redis里面,需完成以下几步:
1:set it_user:id:1:username asion
set it_user:id:1:email
gogery@163.com
2:set it_user:id:45:username mark
set it_user:id:45:email
mark@sina.com
获取id为1的用户的所有信息:keys it_user:id:1*
获取id为1的用户的单个信息:keys it_user:id:1:username
获取所有用户的所有
属性
: keys it_user:*
2:hash类型(
redis中的hset类似于PHP中的关联数组
)
1:设置单个值:
hset
userInfo name asion
相当于
php中的$userInfo=array("name","asion")
2:
获取值:
hget
userInfo name
4:
获取多个值:
hgetall userInfo
3:list类型(redis里称之为链表类型)
1:向链表
头部插入数据:lpush link1 A
2:向链表
尾部插入数据:rpush link2 A
3:获取链表的值:
lrange link1
0 -1 (
0:代表链表的第一个元素,-1代表链表的最后一个元素)
4:从链表头部(左侧)弹出一个元素:
lpop link1
5:从链表尾部(右侧)弹出一个元素:rpop link1
链表数据结构在实际项目中有哪些应用?
答:例如;后台要统计最近登录的10个用户
mysql:select *from user order by logintime desc limit 10
redis: 创建一份list链表,将最近登录的用户的id从左侧插入到链表,当链表长度超出10个后,从链表右侧的用户弹出
4:set类型(在redis里称之为无序集合类型)
集合的3个特点:无序性,唯一性,确定性
1:向集合里添加元素:
sadd set1 1
2:获取集合里的所有元素:
smembers set1
3:移除集合里的指定元素:srem set1 2
4:随机的弹出集合里的某个元素:spop set1
集合的实际应用:
redis里的集合一般应用在社交平台的好友关系展示
案例:
a:设计四个用户:
1:set it_user:id:1:username asion
set it_user:id:1:email
gogery@163.com
2:set it_user:id:45:username mark
set it_user:id:45:email
mark@sina.com
3:set it_user:id:3:username huah
set it_user:id:3:email
dd@163.com
4:set it_user:id:2:username lili
set it_user:id:3:email
dd@163.com
b:设计好友的集合
1:用户id为3的用户的好友集合:(用户3 的好友有1和2
sadd set:user:id:3:friend 2
sadd set:user:id:3:friend:1
2:用户id为45的用户的好友集合:(用户45 的好友有2)
sadd set:user:id:45:friend 2
c:获取好友关系
1:获取3号与45号的共同好友(求交集)
sinter set:user:id:3:friend set:user:id:45:friend
2:获取3号和45号的全部好友(求并集)
sunion set:user:id:3:friend set:user:id:45:friend
3:3号给45号推荐好友(求差集)
sdiff set:user:id:3:friend set:user:id:45:friend
5:zset集合(redis里称之为有序集合)
1:添加元素:
zadd class:phpRank 1 renk
2:获取集合里的所以元素:
zrange class:phpRank 0 -1
3:获取集合元素时,显示相应的权重信息
zrange class:phpRank 0 -1 withscores