[关闭]
@chenbinghua 2019-03-02T06:32:53.000000Z 字数 1124 阅读 623

Redis

redis


Redis的五种数据结构

字符串(String)
字符串列表(list)
字符串集合(set)
有序字符串集合(sorted set)
哈希(hash)

字符串string

1.常见的字符串操作
set key value
get key
setnx (set if not exists)
getrange key x y 返回key的value的值长度
append key value

2.如果字符串的内容是数值
incr key 在给定key的value上增加1(id生成器)
incrby key value 在给定key的value上增加value
decr key
decrby key value

3.string最常见的使用场景
存储json数据类型
set user:1 {id:1,name:xiaolong}

作为计数器
incr count;
incrby count 10;

优酷视频点赞
set vedio:100:goodcount 0
incr vedio:100:goodcount
decr vedio:100:goodcount

字符串列表list

1.redis的List结构(想象成java中的list),是一个双象链表结构

2.list的常用操作

  1. 1RPUSH:在一个list最后添加一个元素
  2. RPUSH firends "stef"
  3. 2LPUSH:在一个list最前面添加一个元素
  4. LPUSH firends "stea"
  5. 3LTRIM key start stop:剪裁一个列表,剩下的内容从startstop
  6. LTRIM friends 0,3 =>只剩下前4个数据;
  7. 4LRANGE key start stop:获取列表中的一部分数据,两个参数,第一个参数代表第一个获取元素的位置(0)开始,第二个值代表截止的元素位置,如果第二个参数为-1,截止到列表尾部;
  8. LRANGE firends 0 -1
  9. 5LLEN key 返回一个列表当前长度
  10. LLEND friends
  11. 6LPOP:移除list中第一个元素,并返回这个元素
  12. LPOP friends
  13. 7RPOP:移除list中最后一个元素,并返回这个元素;
  14. RPOP friends

3.使用场景
1.使用redis的list模拟队列,堆栈
2.朋友圈点赞
1.创建一条微博内容:set user:1:post:91 "hello redis" (用户ID为1,微博ID为91)
2.点赞:
lpush post:91:good 'friend1'
lpush post:91:good 'friend2'
lpush post:91:good 'friend3'
3.查看有多少人点赞: llen post:91:good
4.查看有多少人点赞: lrange post:91:good 0 -1
思考,如果用数据库实现这个功能,SQL会多复杂?

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注