redis——安装

一、安装

  1. 通过wget下载或者https://redis.io/download官网下载压缩包
    wget https://download.redis.io/releases/redis-6.0.8.tar.gz
    tar xzf redis-6.0.8.tar.gz
    cd redis-6.0.8
    make    //编译c
    make PREFIX=/usr/local/redis install    //安装
  2. 配置:
    //将redis-xxx下的redis.conf复制到安装好的redis目录下
    cp redis.conf /usr/local/redis
    如果没有配置文件redis也可以启动,不过将启用默认配置,不方便修改端口号等信息
    客户端连接:redis-cli -h ip地址 -p 端口
    退出连接:ctrl+c
    服务端关闭:redis-cli shutdown    (正常关闭)
    kill -9 pid                   (异常关闭)
  3. 前端启动(了解)
    在redis目录下,执行./bin/redis-server
    缺点:无法部署集群
  4. 后端启动:./bin/redis-server ./redis.conf

二、String命令

字符串类型是Redis中最为基础、常用的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型存入和获取的数据相同,在Redis中字符串类型的Value最多可以容纳的数据长度为512M。

二进制安全和数据安全是没有关系的。
Mysql-关系型数据库,二进制数据不安全
![image.png](https://img-blog.csdnimg.cn/img_convert/609e8ba4597b5d73dd303e4076c51bbd.png#align=left&display=inline&height=259&margin=[object Object]&name=image.png&originHeight=518&originWidth=1225&size=135811&status=done&style=shadow&width=612.5)
Redis-非关系型数据库,二进制数据安全的
[外链图片转存失败,源站可能有防盗image!链机制,建png]接上传mhttps://g-sSblog.dnimg.cn/img_convert/c9572a6b35928ca8d284848fbcf1e0eb.png#align=left&display=inline&height=260&margin=[object Object]&name=image.png&originHeight=520&originWidth=1279&size=121344&status=done&style=none&width=639.5)https://www.yuque.com/lingzhi-l5d3i/bk6gy4/gq0r5a)]
赋值:
set key value:设定key持有指定的字符串value,如果该key存在则进行覆盖操作,总是返回“OK”。
取值:
get key:获取key的value,如果与该key关联的value不是String类型,redis将会返回错误信息,因为get命令只能用于获取String value;如果该key不存在,返回(nil)。
删除:
del key:删除指定key,返回是数字类型,表示删了几条数据。
扩展:
getset key value:先获取该key的值,然后在设置该key的值。
incr key:将指定的key的value原子性的递增1,如果该key不存在,其初始值为0,在incr之后其值为1。如果value的值不能转换为整型,如hello,该操作将执行失败并返回相应的错误信信息。相当于++i。
incrby key increment:增加increment
decr key:将指定的key的value原子性的递减1,如果该key不存在,其初始值为0,在incr之后其值为-1。如果value的值不能转换为整型,如hello,该操作将执行失败并返回相应的错误信信息。相当于–i。
decrby key decrement:减少increment
append key value:拼凑字符串,如果该key存在,则在原有的value后追加该值;如果key不存在,则重新建一个key/value。

String 使用环境:主要用于保存json格式的字符串

三、hash命令

Redis中的Hash类型可以看成具有String key 和String Value的map容器,所以非常适合用于存储值对象的信息,每一个hash可以存储4294967295个键值对。
Hash 特点:占用的磁盘空间极少
赋值:
hset key field value:为指定的key设置field/value对
hmset key field value[field value2…]:设置key中的多个field/value
取值:
hget key field:返回指定的key中的field的值
hget key field1 field2…:获取key中多个field的值
hgetall key:获取key中的所有field-value
删除:
hdel key field:删除指定的key的field值(如何hash中没有field了,hash将会自动删除)
del key:删除整个hash
操作:
hincrby key field increment:增加increment
hexists key field:返回指定key的field是否存在,存在为1,不存在为0
hlen key:获取key所包含的field的数量
hkeys key:获取所有字段
hvals key:获取所有value值

四、LinkedList

为什么redis选取了链表?
Redis操作中,最多的操作是进行元素的增删
使用环境:

通用命令

  • keys
    • keys * / ? / [pattern]     :遍历所有key
    • 一般不用于生产环境,O(n)
  • dbsize       :计算key的总数
  • exists key    :检查key是否存在,存在为1,不存在为0
  • del key [key…]    :删除指定key-value,成功1,失败0
  • expire key seconds    :key在seconds秒后过期
    • ttl key    :查看key剩余的过期时间
    • persist key    :去掉key的过期时间(-2代表key已经不存在了,-1代表存在,但没有过期时间)
  • type key    :返回key的数据类型

数据结构和内部编码
![image.png](https://img-blog.csdnimg.cn/img_convert/21165c53b5b920c40dc29dc53181a861.png#align=left&display=inline&height=318&margin=[object Object]&name=image.png&originHeight=636&originWidth=630&size=193973&status=done&style=none&width=315)
单线程架构:

猜你喜欢

转载自blog.csdn.net/weixin_45636641/article/details/120942205