Redis操作

一. keys 键的操作

exists key  测试指定的key是否存在
del key1 key2....keyN 删除指定的key
type key  返回指定key 的value类型
keys pattern  返回匹配指定模式的所有key
rename oldkey newkey  改名
dbsize  返回当前数据库的key数量
expire key seconds  为key指定过期时间
ttl key  返回key的声誉过期秒数
select db-index  选择数据库
move key db-index 将key从当前数据库移动到指定的数据库
flushdb  删除当前数据库中的所有key
flushall  删除所有数据库中的所有key

二.string类型操作

set key value 设置key对应的值为string类型的value
mset key1 value1...keyN valueN  一次设置多个key 的值
mget key1 key2...keyN 一次获取多个key 的值
incr key  对key的值做加加操作,并返回新的值
decr key  同上,但做的是减减操作
incrby key integer  同incr,加指定值
decrby key integer  同decr,减指定值
append key value  给指定key 的字符串追加value
substr key start end

 返回截取过的key 的字符串



三.List数据类型

1.说明:

    list类型其实就是一个双向的链表,通过push,pop操作从链表的头部或者尾部天剑删除元素。

这使得list既可以用作栈,也可以用作队列。

扫描二维码关注公众号,回复: 647927 查看本文章

2.应用场合:

    获得最新的10个登录用户的信息:select * from user order by logintime desc limit 10;

    以上的sql 语句可以使单,但是数据过多的时候,全部数据都要受到影响,对数据库的负载比较高。必要的情况还需要给关键字 (id或logintime)设置索引,索引也是比较耗费系统资源。

    如果通过list链表实现以上的功能,可以在list链表中只保留最新的10个数据,每进来一个新的数据就删除一个旧数据,每次可以从链表中直接获得需要的数据。极大的节省各方面的资源消耗。

3.list类型操作

lpush key string 在key对应list 的头部添加字符串元素
rpop key  从list的尾部删除元素,并返回删除的元素
llen key 返回 key  对应list 的长度,key不存在返回0, 如果key对应的类型不是list返回错误
lrange key start end  返回指定区间内的元素,下标从0 开始
rpush key string  从尾部添加元素
lpop key  从list的头部删除元素,并返回删除的元素
ltrim key start end  截取list,保留指定区间内元素

   操作:

            a.设置一个链表key, 内部有5 个元素

            

            b.增加一个新元素,并删除一个旧元素

            

            c.截取元素

            

四.set集合类型

1.说明:

    redis 的 set 是 string类型的无序集合

    set元素最大可以包含(2的32次方-1)个元素

   关于set集合除了基本的添加删除操作之外,其他的有用的操作还包含取并集(union)、交集(intersection)、差集(difference).通过这些操作我们很容易的实现QQ中的好友推荐功能

        注意: 每个集合中的各个元素不能重复

2.应用场景:

        

3. set类型操作

sadd key member

添加一个string元素到key对应的set集合,成功返回1

如果元素已经在集合中,返回0, key对应的set不存在返回错误

srem key member [member] 从key对应的set中移除给定的元素,成功返回1
smove p1 p2 member

 从p1 对应 set 中 移除member并添加到p2 对应的set中

scard key  返回set的元素个数
sismember key member  判断member是否在set中
sinter key1 key2 ... keyN  返回所有给定的key 的交集
sunion key1 key2 ... keyN  返回所有给定的key 的并集
sdiff key1 key2 ... keyN  返回所有给定的key 的差集
smembers key  返回key对应的set的所有元素,结果是无序的

4. 操作

            a. 创建tomFri的set集合 并添加元素

            

            b.创建linkenFri的set集合 并添加元素

            

            c.查询tomFri 和 linkenFri 的交集(并集、差集 类似)

            

            d.返回集合中的元素,结果是无序的

            

五. Sort Set排序集合类型

1.说明:

    和set一样sort set 也是string类型元素的集合

    不同的是每个元素都会关联一个

    通过权值可以有序的获取集合中的元素

2.适用场合:

    获得热门帖子(回复量)信息:select * from message order by backnum desc limit 5;

   (以上需求可以通过简单的sql语句实现,但是sql语句比较耗费mysql 的资源)

3.案例

    利用sort set实现获取最热门的前5帖子信息

    

    排序集合中的每个元素都是值、权的组合

    (之前的set几个类型每个元素都这是一个值)

    

    我们只做一个sort set排序集合,里面只保留5个元素的信息,该5个元素是回复量最高的。

   每个帖子被回复的时候,都有机会进入该集合里面,但是只有回复量最高的前5个帖子存在于集合,回复量低的就会被删除。


猜你喜欢

转载自blog.csdn.net/qq_37791322/article/details/80276500