微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis基础语法

nosql:

主要解决高并发数据,可以提高访问性能,将低服务器负担;


Redis:

底层结构:采用键值对存储

工作机制:采用单线程


Redis的数据结构(实用度左至右)

stringhashlistsetzset
key-valuekey-(field-value)双向链表的key
查询快,储存量少查询快,存储量多增删快,查询去重,可求交并差集

说明:

Redis诞生的原因是解决高并发访问数据;而高并发一般是访问量和修改了量短时间发送变化;其需要根据其业务需求而选择不同的数据结构


string数据类型:

底层:键值对(key value)

方法示例说明
setset key value储存数据
getget key value读取数据
deldel key删除数据
setnxsetnx key value判断存储:如果key存在,无法存储并返回0
msetmset key value…批量添加
mgetmget key…批量查看
incrincr key数据加一
decrdecr key数据减一 :注意有负数的存在

说明:

key命名规范

json:表名:主键名:“json字符串”
字段:表名:主键名:主键值:字段名

hash数据类型:

底层:键-键值对(key-(field-value))

方法示例说明
hsethset key field value存储数据
hgethget key field获取数据
hdelhdel key删除数据
hlenhlen key查看field数量
hexistshexists key field判断是否key存在
hmsethmset key field value…批量存储
hmgethmget key field…批量查询
hgetallhgetall key查询所有数据 (底层采用单线程所以如果数据过多对服务器负担加载,慎用)

list数据类型:

底层:双向链表

特点:有序、有索引、两边都可以操作、查询慢、增删快

修饰操作规则说明
l左操作以L开头方法操作数据以左边为开始操作数据
r右操作以R开头方法操作数据以右边为开始操作数据

方法

方法示例说明
lpushlpush key value1 value2…添加数据
lrangelrange key start stop遍历数据:start stop(头索引,遍历到那个索引)
lpoplpop key删除数据 只能一个一个删,删除位置取决于l还是r
lindexlindex key index获取指定索引位置的数据
lremlren key count value删除指定的数据: count(删除多少个) 删除什么值

说明:我们常用list,因为list可以对数据进行分页操作


set数据类型

数据结构:

类似hash结构,保留key,摒弃了value

底层:还是hashmap

特点:

无序、不重复、查询慢、增删快

方法示例说明
saddsadd key member1 member2…添加数据
smemberssmembers key读取数据
sremsrem key member1 member2…删除数据
scardscard key获取数量
sismembersismember key member判断是否包含指定的数据
sintersinter key1 key2…求交集(公共的数据)
sunionsunion key1 key2…求并集(全部数据)
sdiffsdiff key1 key2…求差集(不包含公共的其他数据)

公共api

针对所有数据类型(都是针对key操作的)

基本方法

方法示例说明
deldel key删除指定key
existsexists key判断key是否存在
typetype key获取key的数据类型

时效性方法

方法示例说明
expireexpire key seconds为指定key设置有效时间
ttlttl key获取key存活时间:(-1永久存储,-2消亡或不存在)
persistpersist key将key时效性转换成永久性

查询方法

方法说明
keys *查询所以的key
keys #*查询所有以#开头的key
keys *#查询所有以#结尾的key
keys ??#查询以?占位符且以#结束的所有key(:模糊查询,但key的字符长度要一致),可以任意组合(如?#?#)
keys #*$查询以#开头以$结束的

说明:一般我们禁用查询方法;应为效率太低了;一般都会将数据记录在一个文档中(拿到数据文档先分析数据结构,存的数据是什么)


Redis数据库操作

底层:认是16个数据库,且以0开始的(可修改)

方法说明
select index切换数据库
move key db移动数据
dbsize获取数据库中有多少key
flushdb清除当前数据库数据
flushall清除所有数据(不建议使用)

总结:

  • 在hash数据结构中如果key中没有数据那么这个key也会被回收掉
  • 且在Rdids中无法定义任何重名的key包括不同数据结构的数据

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐