redis入门看这一篇就够了

1 安装gcc

redis使用c语言开发,因为涉及编译的过程,所以需要确定安装了gcc

yum install gcc

2 安装redis,并配置服务开机自启动(fg,bg)

  sudo apt install redis-server
  启动redis
  redis-server
  查看redis是否启动
  redis-cli
1 下载并解压安装包
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar -zxf redis-5.0.3.tar.gz
2 将cd切换到redis解压目录下,执行编译
cd redis-5.0.3
make install PREFIX=/usr/local/redis
3 设置开机启动
vi /etc/systemd/system/redis.service

复制下面内容的上文件
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server
PrivateTmp=true
[Install]
WantedBy=multi-user.target

4 开机启动
systemctl daemon-reload
systemctl start redis.service
systemctl enable redis.service   #开机启动
#停止开机自启动 systemctl disable redis.service  
5 使用redis命令创建软链接
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis

3 Redis支持的数据类型及操作

  • redis的引用场景

    1. 缓存(数据查询、短连接、新闻内容、商品内容等等)
    2. 聊天室的在线好友列表
    3. 任务队列。(秒杀、抢购、12306等等)
    4. 应用排行榜
    5. 网站访问统计
    6. 数据过期处理(可以精确到毫秒)
    7. 分布式集群架构中的session分离
  • String(字符串)
    1. 是redis的最基本的类型,一个key对应一个value
    2. string类型是二进制安全的。意思是redis的String可以包含任意数据。如jpg图片或者序列对象
    3. String类型是redis的基本数据类型,string类型的最大值能存储512MB.

添加值 set key value
获取值 get key
删除 del key

操作如下:
在这里插入图片描述

  • Hash(字典)
    1. Redis hash 是一个建值(key -> value) 对集合
    2. hash特别适合用于存储对象
    3. 每一个Hash可以存储(40多亿键值对)

添加值: hmset 名字 key value
获取值: hget 名字 key
hgetall key:获取所有的field 和value
hdel key field

在这里插入图片描述

  • Set(集合)

    1. Redis 的Set是 String 类型的无序集合
    2. 集合是通过哈希表来实现的,所以添加,删除,查找的复杂度都是O(1)

    添加 :sadd命令,执行成功返回0,执行失败返回1 sadd key value
    删除集合:srem key value 删除set集合中的某一个元素
    遍历集合 smembers key

sadd set_test hello

在这里插入图片描述

  • List(列表)

    1. Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

    添加到左边 lpush key value
    添加到右边 rpush key value
    遍历 lrange key start end 如 0 10
    删除左边 lpop key
    删除右边 rpop key
    在这里插入图片描述

  • zset(sorted set :有序集合) 使用调表实现

    1. Redis zset和set 一样也是String类型元素,而不让有重复的成员
    2. redis是通过分数来为集合中的成员进行从小到大的排序
    3. zset的成员是唯一的,但分数(score)却可以重复。

添加命令

 zadd key score member
 zrange key start end [withscores]
 zrem key value

在这里插入图片描述

  • HyperLogLog
    Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

数据类型总结

类型 简介 特性 场景
String(字符串) 二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M
Hash(字典) 键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像数据库中update 一个属性一样只修改某一项属性值(Mamcached中需要取出整个字符串反序列化成对象修改再序列化回去) 存储、读取、修改用户属性
List(列表) 链表(双向链表) 增删快,提供了某一段元素的API 1 最新消息排行等功能(比如朋友圈的时间线)2 消息队列
Set(集合) 哈希表实现,元素不能重复 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐
Sorted Set(有序集合) 将Set中的元素增加一个权重参数score,元素按score有序排列 数据插入集合时,已经进行天然排序 1、排行榜 2、带权重的消息队列

4 持久化

  1. redis 是一个内存数据库,当redis服务器重启,或者电脑重启时候,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘文件当中。
  2. redis持久化机制:
    1. RDB:默认方式,不需要经行配置,在一定时间中,检测key的变化情况,然后持久化数据
    2 AOF: 日志记录的方式,可以记录每一条命令的操作,可以每一次命令操作后,持久化数据

5 java 使用Redis

     Jedis jedis = new Jedis("localhost",6379);
     jedis.close();

使用连接池:JedisPool

 1 创建连接池
 2 调用getResource()方法获取Jedis连接
   JedisPoolConfig config=new JedisPoolConfig();
   config.setMaxTotal(50);
   config.setMaxIdle(10);
//1 创建Jedis连接池对象
		JedisPool jedisPool =new JedisPool(config,"localhost",6379);
	 jedis jedis=	jedisPool.getResource();
  

猜你喜欢

转载自blog.csdn.net/filling_l/article/details/108367438