Redis实战解读

一.初识Redis

1.什么是Redis

Redis是一个速度非常快的非关系型数据库(non-relational database),它可以存储键(key)与五种不同类型的值的映射(mapping),可以将存储在内存的键值对数据持久化到磁盘,可以使用复制特性来扩展读性能,也可以采用客户端分片来扩展写性能。--《Redis实战》

2.Redis与其他数据库的对比

​ 与memcached对比:Redis能够存储包括字符串类型的共计五种数据类型的键值,而memcached只能存储普通的字符串类型的键值。

二.Redis中的数据结构

Redis支持String(字符串),List(列表),Set(集合),Hash(散列),Zset(有序集合)共计五种数据类型以存储键值,接下来,我们将分别去讨论这五种数据类型

(我们将在Linux系统进行演示,如何在Linux系统上安装并运行Redis,请参照https://redis.io/docs/getting-started/installation/install-redis-on-linux/)

1.String(字符串)

字符串的内容可以是字符串,整数或者是浮点数,因此,字符串可以进行字符串相关的操作,以及数值型的自加自减操作。

相当于其他数据类型而言,字符串类型的内容较为简单,这里以代码过之。

image-20230512162318677

相关方法说明:

向数据库中添加一个key-value: set key value

获取数据库中指定key的value: get key

删除数据库中指定的key: del key

2.List(列表)

Redis中的链表结构能够顺序存储多个字符串,其中,链表中的每一个节点均代表着一个字符串

代码演示:

image-20230512163534988image-20230512163836833

相关方法说明:

rpush key value:从左侧向key对应的链表插入一个value元素,并返回添加的元素的value值

lpush key value:从右侧向key对应的链表插入一个value元素,并返回添加的元素的value值

rpop key:从左侧删除key对应的链表的一个元素,并返回删除的元素的value值

lpop key:从右侧删除key对应的链表的一个元素,并返回删除的元素的value值

lindex key index :获取列表上指定(从右侧数)index处的元素的value值

lrange key startIndex endIndex:获取从startIndex索引到endIndex索引之间(即[startIndex,endIndex]区间上的元素)的元素的元素值

注意:当startIndex = 0,endIndex = -1,则表示获取整个链表内的所有元素。

​ index是从0开始计数。

3.Set(集合)

与List数据类型不同的是,Set不能存储多个相同的字符串值,也就是说,其存储的元素值具有唯一性,此外,其存储顺序也是不定的,即元素存储的顺序与插入顺序没有关系。

image-20230512165802415image-20230512165853630image-20230512170220291

相关方法说明:

sadd key value : 向指定key的集合中添加一个值为value的元素,成功返回1,失败返回0

srem key value : 向指定key的集合中删除一个值为value的元素,成功返回1,失败返回0

smembers key : 获取指定key的集合中的全部元素

sismember key value :确定指定元素value是否存在于key的集合中,存在则返回1,不存在则返回0

4.Hash(散列)

Redis中的散列用于存储多个键值对之间的映射,类似于Java中的Map数据类型。

image-20230513161158538image-20230513161213401image-20230513161551708

相关方法说明:

hset key sub_key sub_value : 向指定key的集合中添加 sub_key 与sub_value的键值映射,插入成功返回1,失败返回0

hget key sub_key : 获取指定key的集合中的sub_key对应的值,存在sub_key的关系映射,则返回相对应的值,不存在返回nil

hdel key sub_key : 删除指定key的集合中的sub_key的键值映射

hgetall key : 获取指定key集合中的全部键值映射,注意:结果是以key1,value1,key2,value2,.......交替展示

5.Zset(有序集合)

与Set一样,该种数据类型也是用于存储唯一性的键值的,与前者不同的是,后者在键值的基础上还添加了一个与之绑定的分数值(score),因此你可以依据score值去获取相应的value值,并且也可以查询指定score范围内的相对应的key值。

image-20230513162755613image-20230513162810089

相关方法说明:

zadd key score item : 向指定key的有序集合中添加一个分数为score 的item元素,插入成功返回1,失败返回0

zrem key item : 删除指定key的有序集合中的指定item元素,删除成功返回1,失败返回0

zrange key startIndex endIndex [withscores] : 获取指定key的有序集合中的索引介于起始索引startIndex与结束索引endIndex之间的元素,添加withscores则返回的结果中为item与score的交替展示

zrangebyscore key minScore maxScore [withscores]: 获取指定key的有序集合中的分数值介于minScore与maxScore之间的元素值,添加withscores则返回的结果中为item与score的交替展示

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/ChinaPTP/p/17403187.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!