Redis的Linus下的安装

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自增,浮点数

 

posted @ 2023-03-19 16:20  一只神秘的猫  阅读(58)  评论(0)    收藏  举报