redis的简单操作

二: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 [email protected]
2:set it_user:id:45:username mark
set it_user:id:45:email [email protected]
获取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
3: 设置多个值hmset userInfo age 23 email [email protected]
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 [email protected]
2:set it_user:id:45:username mark
set it_user:id:45:email [email protected]
3:set it_user:id:3:username huah
set it_user:id:3:email [email protected]
4:set it_user:id:2:username lili
set it_user:id:3:email [email protected]
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

猜你喜欢

转载自blog.csdn.net/qq_40036979/article/details/80024132