NoSQL调研与学习(三)--Redis基本操作

本文详细介绍了Redis数据库的基本知识,包括Redis的五种数据类型:String、List、Set、Hash和Sorted Set,并展示了每种类型的操作,如设置、获取、更新和删除。此外,还涵盖了Redis中的String类型的常用操作,如设置键值、获取键值、增加减少操作,以及Hash、List、Set和Sorted Set的相关操作。
摘要由CSDN通过智能技术生成

2.4Redis数据库基本知识学习

本文学习部分内容参考于 https://blog.csdn.net/xgangzai/article/details/82661940?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162528654516780274156396%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162528654516780274156396&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-82661940.pc_search_result_before_js&utm_term=redis%E5%AD%A6%E4%B9%A0&spm=1018.2226.3001.4187

以及

https://blog.csdn.net/weixin_45986798/article/details/104047893?ops_request_misc=&request_id=&biz_id=102&utm_term=redis%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-.pc_search_result_before_js&spm=1018.2226.3001.4187

若侵权,请联系本人进行修改。

2.4.1Redis基本数据类型

redis是一种高级的key-value非关系型数据库。,其中value支持五种数据类型:string,List,set,hash,sore set

字符串(string)

string存储的元素类型可以是string/int/float,int类型可以进行增加和减少操作。

代码实际操作过程:

字符串列表(list)

list类型是一个有序的列表,有序表示的是从左到右还是从右到左,而且数据内容是可以重复的。

代码实际操作过程:

字符串集合(set)

set类型中提供了无序的方式来存储多个不同的元素,set类型中每个元素的值都不一样,用户可以快速对元素中的值添加删除,检查某些值是否存在,重复的元素是无法继续插入集合的。

代码实际操作过程:

哈希(hash)

hash类型也叫散列类型,存储的时候存的是键值对。查询条数的时候只要是健不一样,就是不同的条数,尽管值是相同的。

代码实际操作过程:

有序字符串集合(sort set)

sore set也叫有序分数集,可以把它看作一个排行榜,每一个同学都有自己的分数,且排行榜中还有一个排名的属性,排行属性从0,根据分数不断变大,排行也不断变大。

代码实际操作过程:

2.4.2Redis数据库基本操作

string

简介:
string 可以包含任何数据,⽐如jpg 图⽚或者序列化的对象。
string类型是Redis最基本的数据类型,⼀个键最⼤能存储512MB。常用于:缓存页面、session共享、计数

设置键:

命令:SET key value #设置单键值对 >set h1 100 #设置h1的值为100

命令:mset key value [key value] #设置多个键值对 >mset name '王宝强' age 30 gender '男'

命令:setex key seconds value #设置键值及过期时间(秒单位) >setex age 100 20 #设置年龄的值为20,过期时间100秒

获取键

命令:get key #获取单个键>get h1

命令:mget key1 key2 key3 #获取多个键>mget name age sex

查看过期时间

命令:ttl key

>ttl a1 #查看a1的过期时间

运算

原来的值必须是数值字符串

命令:incr key #将对应的key 加1

命令:decr key #将对应的key值减1

命令:incrby key num #将对应的key加指定值

命令:decrby key num #将对应的key的值减去指定值

其他操作:

命令:append key value #追加值,redis中值都是字符串,追加就是字符拼

>append name 'hello' #如果原来的值是tom,那么现在就是tomhello

命令:strlen key #获取值得⻓度

hash

简介:

Redis hash 是⼀个键值(key=>value)对集合。Redis hash是⼀个string类型的field

和value的映射表,hash特别适合用于存储对象。每个 hash 可以存储 2的32次方

-1 键值对(40多亿)。

设置值

命令:hset key field value #设置key所指对象的指定属性的值

命令:hmset key field value [field value] #设置key所指对象的多

个属性值

命令:hsetnx key field value #当field字段不存在时 设置key所指对

象的field属性值

eg:

hset person name '⼆狗⼦'

hmset person age 20 sex '男'

hsetnx person maried '未婚'

获取值

命令: hget key field #获取key指定的对象的属性值

命令: hmget key field [field] #获取key指定对象的多个属性值

命令: hgetall key #获取key所指对象的所有属性的名称和值

命令: hkeys key #获取key所指对象的所有属性名

命令: hvals key #获取key所指对象是的所有属性值

命令: hlen key #获取key所指对象的属性个数

其他操作

命令:hincrby key field increment #为key所指对象的指定字段的整

数值加上increment

命令:hincrbyfloat key field increment #为key所指对象的指定字段的

实数值加上increment

命令:hexists key field #判断当前的字段是否存在在(在返回1 否则返回

0)

命令:hdel key field [field] #删除字段和值

list

简介:

redis 列表是简单的字符串列表,按照插⼊顺序排序。你可以添加⼀个元素到列表

的头部(左边)或者尾部(右边)。列表最多可存储 2的32次⽅ - 1 元素

(4294967295, 每个列表可存储40多亿)。

常应⽤于:1、对数据量⼤的集合数据删减 2、任务队列

添加数据:

命令:lpush key value [value] #头部插⼊数据

命令:lpushx key value #如果列表存在则在列表头部插⼊数据

命令:rpush key value [value] #在列表尾部添加数据

命令:rpushx key value #如果列表存在,则在尾部添加数据

命令:linsert key before|after value value #在指定值前或后插⼊数

命令:lset key index value #设定指定索引元素的值

注意:索引的值从左边开始,向右增加,左边第⼀个是0,从右边向左索引编号

为:-1 -2...

获取数据

命令:lpop key #左侧出队并返回出队元素

命令:rpop key #右侧出队并返回出队元素

命令:lindex key index #返回指定索引的值

命令:lrange key start end #返回存储列表中的指定范围的元素

 [start,end]

命令:lrem key count value #从列表⾥移除前 count 次出现的值为

value 的元素

 count > 0: 从头往尾移除值为 value 的元素。

 count < 0: 从尾往头移除值为 value 的元素。

 count = 0: 移除所有值为 value 的元素。

其他操作

命令:llen key #获取列表⻓度

命令:ltrim key start stop #裁剪列表 保留start到stop之间的元素,

其它都删除

 ltrime mylist -3 -1 #从索引为-3到-2的保留, 以外的全部删除

set

简介

Redis的Set是string类型的⽆序集合,元素具有唯⼀性 不重复。集合是通过哈希表

实现的,所以添加,删除,查找的复杂度都是O(1)。

常应⽤于:对两个集合间的数据进⾏交集、并集、差集运算

添加元素

sadd key member [member] #添加多个元素

获取元素

smembers key #获取集合中所有的元素

scard key #返回集合元素的个数

srandmember key [count] #返回集合中随机元素的值,可以返回count个

其他操作

spop key [count] #移除集合中随机的count个元素,并返回

srem key member1 [member2] #移除集合中 ⼀个或者 多个 成员

sismember key member #判断元素是否在集合中 存在返回1 不在返回0

集合操作

求多个集合的交集: sinter key [key...]

求多个集合的差集 (注意⽐较顺序):sdiff key [key...]

求 多个集合的并集: sunion key [key....]

zset

简介

Redis zset 和 set ⼀样也是string类型元素的集合,且不允许重复的成员。不同的是

每个元素都会关联⼀个double类型的分数。redis正是通过分数来为集合中的成员

进⾏从⼩到⼤的排序。zset的成员是唯⼀的,但分数(score)却可以重复。

常应⽤于:排⾏榜

添加元素

zadd key score member [score member] #添加多个元素

zincrby key increment member #对指定的成员增加权重

increment

获取元素

zrange key start end #返回指定范围的元素

zcard key #返回元素的个数

zcount key min max #返回有序集合中权重在min和max之间的元素的

个数

zscore key member #返回有序集合中 member(元素) 的权重

(score)

zrange key start end withscores #返回当前key中 所有的权重

(score)和元素(member)

其他操作:

keys * #查看所有的key

keys u* #查以u开始的key

keys n??? 查找以n为开头⻓度为4个的key

keys n 查找 包含 n 的所有的key

⽀持的正则表达式:

- h?llo 匹配第⼆位为任意的字符

- h*llo 匹配第⼆位为任意字符 0个 或多个

- h[ab]llo 匹配第⼆位为 a或者b的字符的key

- hello 匹配第⼆位除了e字符以外的任意的key

- h[a-z]llo 匹配第⼆位为a-z的⼩写字⺟的key

exists key #判断键是否存在

type key #查看key对应的value的类型

del key #删除指定key

expire key 10 #设置过期时间,秒

persist key #移除key的过期时间

rename key newkey #修改key的名称(如果新的key的名字存在 则会把存在的key的 值 覆盖掉)

randomkey #随机返回⼀个 key

move key db 将键移动到指定库

flushdb #清空当前库所有key

flushall #清空所有库⾥的key

exit #退出redis客户端

quit 退出客户端

查看服务器信息

info

dbsize 当前库中有多少key

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值