9

Redis实战解读-初识Redis&Redis基本数据类型

 1 year ago
source link: https://www.cnblogs.com/ChinaPTP/p/17403187.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
1.Redis实战解读-初识Redis&Redis基本数据类型05-15

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(字符串)

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

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

相关方法说明:

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

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

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

2.List(列表)

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

代码演示:

相关方法说明:

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不能存储多个相同的字符串值,也就是说,其存储的元素值具有唯一性,此外,其存储顺序也是不定的,即元素存储的顺序与插入顺序没有关系。

相关方法说明:

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-20230513161213401

相关方法说明:

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值。

相关方法说明:

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的交替展示


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK