失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Redis五大基本数据类型和三大特殊数据类型

Redis五大基本数据类型和三大特殊数据类型

时间:2023-12-11 08:18:37

相关推荐

Redis五大基本数据类型和三大特殊数据类型

Redis

nosql讲解阿里巴巴架构演进nosql数据模型Redis入门Redis安装(windows&linux)

Nosql概述

很多的数据类型用户的个人信息, 社交网络,地理位置。这些数据类型的存储不需要一个固定的格式 !不需要多月的操作就可以横向扩展的! Map<String,Object> 使用键值对来控制!

NOSQL特点

方便扩展(数据之间没有关系,很好扩展!)

大数据量高性能

数据类型是多样型的

传统RDBMS和nosql

传统的RDBMS和nosql-结构化组织-SQL-数据和关系都存在单独的表中-操作,数据定义语言-严格一致性-基础事务

nosql-不仅仅是数据-没有固定的查询语句-键值对存储,列存储,图形数据库(社交关系)-高性能,高可用,高扩展

大数据时代的3V:主要是描述问题的

​ 1.海量 volume

​ 2.多样

​ 3.实时

三高

高并发

高扩展

高性能

安装

先安装 gcc-c++

yum install gcc-c++makemake install

报错:

1 make[1]: *** [server.o] Error 1

原因是因为gcc版本过低,yum安装的gcc是4.8.5的。因此需要升级gcc,升级过程如下:

yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils#这句是临时的scl enable devtoolset-9 bash#修改环境变量echo "source /opt/rh/devtoolset-9/enable" >> /etc/profilegcc -v

redis的默认安装路径/usr

[root@master redis-6.0.5]# cd /usr/[root@master usr]# lsbin games lib libexec sbin srcetc include lib64 local share tmp[root@master usr]# cd local/[root@master local]# lsbin etc games include lib lib64 libexec sbin share src[root@master local]# cd bin/[root@master bin]# lsredis-benchmark redis-check-rdb redis-sentinelredis-check-aof redis-cli redis-server[root@master bin]# pwd/usr/local/bin

测试

#测试:100并发 100000请求redis-benchmark -h localhost -p 6379 -c 100 -n 100000

基础知识

redis默认有十六个数据库

默认使用的是第0个

可以使用select进行切换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MGhcHnmO-1596033904628)(C:\Users\diudiu\AppData\Roaming\Typora\typora-user-images\image-202839962.png)]

redis是单线程 (6379 粉丝效应)

明白redis是很快的,官方表示,redis是基于内存操作,CPU不是redis性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了!所以就使用了单线程

redis是C语言写的,官方提供的数据为100000的QPS,完全不比同样是使用key-value的memecache差!

redis为啥单线程还这么快

1误区1:高性能的服务器一定是多线程?

2误区2:多线程(cpu上下文切换)一定比单线程效率高

核心:redis是将所有的数据全部放在内存中的,所有说使用单线程去操作效率就是最高的,多线程(cpu上下文切换:耗时操作),对于内存系统来说,如果没有上下切换效率就是最高的!多次读写都在一个CPU上,在内存情况下这个就是最佳方案

五大数据类型

Redis是一个开源( BSD许可)的,内存中的数据结构存储系统,它可以用作数据库缓存消息中间件MQ。它支持多种类型的数据结构,如字符串( strings),散列(hashes) ,列表(lists),集合(sets) ,有序集合( sortedsets)与范围查询,bitmaps,hyperloglogs 和地理空间( geospatial )索引半径查询。Redis 内置了复制( replication) , LUA脚本(Luascripting) , LRU驱动事件( LRU eviction) , 事务( transactions )和不同级别的磁盘持久化( persistence ) , 并通过Redis哨兵( Sentinel )和自动分区( Cluster )提供高可用性( high availability )。

redis-key

127.0.0.1:6379> keys *(empty array)127.0.0.1:6379> set age 1OK127.0.0.1:6379> keys *1) "age"127.0.0.1:6379> EXISTS age(integer) 1127.0.0.1:6379> EXISTS age1(integer) 0127.0.0.1:6379> MOVE age(error) ERR wrong number of arguments for move command127.0.0.1:6379> MOVE age 1(integer) 1127.0.0.1:6379> set name qwcOK127.0.0.1:6379> get name"qwc"127.0.0.1:6379> EXPIRE name 10(integer) 1127.0.0.1:6379> ttl name(integer) 6127.0.0.1:6379> ttl name(integer) 5127.0.0.1:6379> ttl name(integer) 4127.0.0.1:6379> ttl name(integer) 3127.0.0.1:6379> ttl name(integer) 2127.0.0.1:6379> ttl name(integer) 1127.0.0.1:6379> ttl name(integer) 1127.0.0.1:6379> ttl name(integer) -2127.0.0.1:6379> get name(nil)

string(字符串)

##################################################################127.0.0.1:6379> set key1 v1 #设置值OK127.0.0.1:6379> get key1 #获取值"v1"127.0.0.1:6379> keys *1) "key1"127.0.0.1:6379> EXISTS key1 #是否存在(integer) 1127.0.0.1:6379> APPEND key1 hello #追加(integer) 7127.0.0.1:6379> get key1"v1hello"127.0.0.1:6379> STRLEN key1 #获取长度(integer) 7127.0.0.1:6379> APPEND key1 ,qwc(integer) 11127.0.0.1:6379> get key1"v1hello,qwc"###################################################################i++#步长 127.0.0.1:6379> set views 0OK127.0.0.1:6379> get views"0"127.0.0.1:6379> incr views(integer) 1127.0.0.1:6379> incr views(integer) 2127.0.0.1:6379> get views"2"127.0.0.1:6379> DECR views(integer) 1127.0.0.1:6379> DECR views(integer) 0127.0.0.1:6379> DECR views(integer) -1127.0.0.1:6379> INCR views(integer) 0127.0.0.1:6379> INCRBY views 10(integer) 10127.0.0.1:6379

如果觉得《Redis五大基本数据类型和三大特殊数据类型》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。