1.Redis
NoSQL:Not Only SQL非关系型数据库
-
NoSQL的四大类:
- 键值(Key-Value)存储数据库,使用到一个哈希表,这个表中有一个指针指向特定的数据:Redis,Memcache。
- 列存储数据库:HBase。
- 文档型数据库:MongoDB,SQLite,DB2(淘汰)。
- 图形数据库:InfiniteGraph。
-
NoSQL应用场景:
- 数据模型比较简单
- 数据的灵活性更强
- 对数据库性能要求比较高
- 不需要高度的数据一致性
-
非关系型数据库的作用:当做第三方的缓存
-
Redis特点:
- Redis是K-V型数据库
- Redis是有丰富的数据类型(五大数据类型)
- Redis支持持久化存储
- Redis是单线程的,线程安全,效率低
-
安装Redis
- 解压redis的压缩包
- 由于redis是用C语言写的,安装之前需要C语言的依赖
yum install -y gcc - 需要使用gcc对redis的安装文件进行编译
make MALLOC=libc - 执行安装redis
make install PREFIX=/usr/redis - 启动redis服务
进入redis安装目录,进入bin目录,./redis-server - 启动redis的客户端
进入redis安装目录,进入bin目录,./redis-cli -h localhost -p 6379
Redis指令
-
Redis清除库的指令:
- FLUSHDB:清空当前库
- FLUSHALL:清空所有库、
-
切换库
- select 库编号
-
set:存值
-
get:根据key获取value
-
keys *(代表任意位数的字符):获取全部key名
-
del:根据key删除value值,可以删除多个key对应的值
-
exists:判断指定的key是否存在(存在:1;不存在:0)
-
通配符:
-
*:代表任意位数的字符
-
?:代表一位字符
-
[ae]:a或e,只代表一位字符,如果有特殊符号,用\
-
-
move:把当前库的key移动到指定的库中
-
pexpire:设置key的过期时间,单位是毫秒
-
ttl:查看指定key设置的过期时间,单位是秒
-
pttl:查看指定key设置的过期时间,单位是毫秒
-
randomkey:随机获取一个key
-
rename:重命名一个key
-
type:查看指定key对应值的数据类型
Redis数据类型
1、string类型(字符串)
- set:设置一个key-value
- get:根据指定的key获取对应的value
- mset:一次设置多个key-value
- mget:一次获得多个key对应的值
- getset:获取原始的key值的同时设置新的key值
- strlen:获取对应key的value的长度
- append:为指定的key追加内容
- getrange:截取value的值的内容。-1代表截取到末尾
- setex:设置一个key的过期时间,存活时间,单位是秒
- psetex:设置一个key的过期时间,单位是毫秒
- setnx:如果不存在就设置,如果存在,则不做任何操作
- msetnx:可以同时设置多个key,是一个原子操作。
- decr:自减1。
- decrby:做减法计算
- incr:自增1
- incrby:做加法计算
- incrbyfloat:做加法计算,参数可以是浮点型。
2、list类型(列表,类似于java中的list)
- lpush:设置一个列表,在表头添加数据
- lrange:获取一个列表区间内的元素
- rpush:设置一个列表,在表尾添加数据
- lpushx:保证这个key存在,在表头添加数据。
- rpushx:保证这个key存在,在表尾添加数据。
- lpop:移除并返回列表中左边的第一个元素
- rpop:移除并返回列表中右边的第一个元素
- llen:获取列表元素的个数
- lset:设置某一个指定索引的位置的值(索引值必须正确)
- lindex:获取某一个指定索引位置的元素
- lrem:删除重复元素,可以指定删除的个数和具体的值。
- ltrim:保留列表中特定区间的元素
- linsert:在某一个元素之前|之后插入新元素