Redis
NoSQL:Not Only SQL非关系型数据库。缓存
流量比较大,不需要写sql语句。
NoSQL的四大分类:
1、键值(Key-Value)存储数据库。使用到一个哈希表,这个表中有一个指针指向特定的数据。Redis,Memcache。
2、列存储数据库。HBase。
3、文档型数据库。MongoDB,SQLite。
4、图形数据库。Infinite Graph。
NoSQL应用场景:
1、数据模型比较简单
2、数据灵活性更强
3、对数据库性能要求比较高
4、不需要高度的数据一致性
非关系型数据库,当做第三方缓存。
Redis特点:
1、Redis是K-V型数据库
2、Redis是有丰富的数据类型(五大数据类型)
3、Redis支持持久化存储。
4、Redis是单线程,线程安全。
Redis的安装
把 redis-4.0.10.tar.gz 放到 /root 下
解压tar -zxvf redis-4.0.10.tar.gz
安装redis(Linux版)
1、解压redis的压缩包
2、由于redis是用C语言写的,安装之前需要C语言的依赖
yum install -y gcc
3、需要使用gcc对redis的安装文件进行编译
make MALLOC=libc
4、执行安装redis,安装到 /usr
make install PREFIX=/usr/redis
5、启动redis服务
进入redis安装目录,进入bin目录,./redis-server
6、启动redis的客户端
进入redis安装目录,进入bin目录,./redis-cli
./redis-server 启动后
Port:端口号
PID:线程号,可以kill结束进程
打开Redis客户端
其他没有变动的话,可以直接写 ./redis-cli
把redis.conf放到安装的/usr/redis下
启动redis服务的同时加载配置文件启动
./redis-server ..redis.conf
# ./redis-server /path/to/redis.conf
可以修改redis.conf配置文件
修改redis的默认端口号:
修改redis.conf里面的port属性
redis中库的概念:
databases:用来存放数据的一个基本单元,redis的每一个库都有一个唯一的名称(编号),从0开始,一共16个库,0-15。
切换库:select 库编号
redis中清除库的指令
flushDB:清空当前库
flushAll:清空所有库
Redis的一些指令
set:存值
get:根据key获取value
keys *:查看当前库所有的key
del:根据key删除值,可以删除多个key对应的值
exists:判断指定的key是否存在
expire:为指定的key设置过期时间,单位是秒
keys:
*:代表任意位数的字符
?:代表一位字符
[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:在某一个元素之前|之后插入新元素
# set类型和zset类型
## set
特点:Set类型类似于Set集合,元素无序,不可重复。- sadd:为集合添加元素 - smembers:显示集合中的所有元素,无序 - scard:返回集合中元素的个数 - spop:随机返回一个元素,并将元素在集合中删除 - smove:从一个集合中向另一个集合中移动元素,必须都是set类型 - srem:从集合中删除一个元素 - sismember:判断一个集合中是否含有这个元素 - srandmember:随机获取n个元素 - sdiff:去掉第一个集合中其他集合含有的相同元素,返回一个新的结果,原有的集合中的数据不会真正删除。 - sinter:求交集 - sunion:求并集,求合集
## zset
特点:可排序的set集合,不可以重复。- zadd:为集合添加元素,添加元素的同时要指定元素的分数,最终根据分数来排序。 - zcard:返回集合元素的个数 - zrange:按照分数的升序排列,可以选择带有score查询 - zrevrange:按照分数的降序排列。 - zrangebyscore:按照分数查找一个范围内的元素,可以分页。 - zrank:返回排名 - zrevrank:倒序排名 - zscore:查看某一个元素的分数 - zrem:删除某个元素 - zincrby:给某一个特定的元素加分
# hash类型
特点:value是一个map结构。key无序的- hset:创建一个hash - hget:获取一个key对应的value - hgetall:获取所有的k-v对 - hdel:删除某一个k-v对 - hexists:判断一个key是否存在 - hkeys:获取所有的key - hvals:获得所有的value - hmset:设置多个k-v - hmget:获得多个key的value - hsetnx:设置一个不存在的k-v值 - hincrby:为value自增 - hincrbyfloat:为value自增,浮点数
标签:redis,元素,Redis,value,key,集合,安装,Linus From: https://www.cnblogs.com/shenmimao/p/17233340.html