redis 基础(二) Redis安装
1安装reids
1.1Linux(centos7)安装Redis
- 进入官网
- 通过Xftp 6,将其移动到linux下,然后解压
-
tar -zxvf redis-6.0.9.tar .gz #tar -zxvf reids文件名称
-
- 进入redis文件夹
- 安装redis之前需要安装一个依赖: yum install gcc-c++
- 开始安装reids
- 先进行编辑:make
- 然后安装:make install
- 配置reids
- 先进入redis的utils文件夹下
- 然后拷贝redis的启动脚本,拷贝到/etc/init.d/文件夹下:cp redis_init_script /etc/init.d/
- 再把redis文件夹下的redis.conf拷贝到/usr/local/redis 下;然后进入/usr/local/redis 文件夹下 ,修改redis.conf => vim redis.conf
-
找到daemonize 修改为no
-
- 设置redis启动脚本
-
cd /etc/init. d/ vim redis init script
- 给脚本运行权限
-
- 运行redis=》 ./redis_init_scrip start
- 设置redis开机启动:进入redis_init_script 添加【#chkconfig:22345 10 90 #description:Start and Stop redis】。填写完之后将此注册到服务器中=》chkconfig redis_init_script on
1.2如果安装失败
- 尝试安装gcc全套
-
yum install cpp yum install binutils yum install glibc yum install glibc-kernheaders yum install glibc-common yum install glibc-devel yum install gcc yum install make
-
- 升级gcc
-
yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash
-
- 设置永久升级
-
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
-
2Redis基础
2.1Redis类型
2.1.1String类型
- string字符串
- string:最简单的字符串类型键值对缓存,也是最基本的
- key相关
- keys* :查看所有的key (不建议在生产上使用,有性能影响)
- type key : key的类型
- string类型
- get/set/del :查询/设置/删除
- set rekey data :设置已经存在的key ,会覆盖
- setnx rekey data :设置已经存在的key ,不会覆盖
- set key value ex time :设置带过期时间的数据
- expire key :设置过期时间
- ttl:查看剩余时间,-1永不过期,-2过期
- append key :台并字符串
- strlen key :字符串长度
- incr key :累加1
- decr key :类减1
- incrby key num :累加给定数值
- decrby key num:累减给定数值
- getrange key start end :截取数据, end=-1代表到最后
- setrange key start newdata :从start位置开始替换数据
- mset :连续设值
- mget :连续取值
- msetnx :连续设置,如果存在则不设置
- 其他
- select index :切换数据库,总共默认16个
- flushdb :删除当前下边db中的数据
- flushall :删除所有db中的数据
2.1.2hash类型
- hash
- hash :类似map ,存储结构化数据结构,比如存储一一个对象(不能有嵌套对象)
- 使用
- hset key property value :
- -> hset user name imooc
- ->创建- -个user对象,这个对象中包含name属性, name值为imooc
- hget user name :获得用户对象中name的值
- hmset:设置对象中的多个键值对 -> hset user age 18 phone 139123123
- hmsetnx :设置对象中的多个键值对,存在则不添加 -> hset user age 18 phone 139123123
- hmget :获得对象中的多个属性 -> hmget user age phone
- ngetall user :获得整个对象的内容
- hincrby user age 2 :累加属性
- hincrbyfloat user age 2.2 :累加属性
- hlen user :有多少个属性
- hexists user age :判断属性是否存在
- hkeys user :获得所有属性
- hvals user :获得所有值
- hdel user :删除对象
- hset key property value :
2.1.3list类型
- list
- list:列表,[a, b.c, d...」
- 使用
- lpush userList12345:构建-一个ist ,从左边开始存入数据
- rpush userList12345:构建- -个ist .从右边开始存入数据
- Irange list start end :获得数据
- lpop:从左侧开始拿出一个数据
- rpop:从右侧开始拿出一一个数据
- plg cow sheep chicken duck
- len list: list长度
- Index list index :获取is1下标的值
- set list index value :把某个下标的值替换
- Iinsert ist before/after value :插入- -个新的值
- Irem list num value :删除几个相同数据
- trim list start end :截取值.替换原来的ist
2.1.4zset类型
- sorted set :
- sorted set :排序的set。可以去重可以排序。比如可以根据用户积分做排名。积分作为set的一一个数值。根据数值可以做排序。sel中的每- -1 lmemeber都带有一一个分数
- 使用
- zadd zset 10 value1 20 value2 30 value3 :设置member对应的分数
- zrange zset 0 -1 :查看所有2set中的内容
- zrange zset 0 -1 withscores :带有分数
- zrank zset value :获得对应的下标
- zscore zset value :获得对应的分数
- zcard zset :统计个数
- zcount zset分数1分数2 :统计个数
- zrangebyscore zset分数1分数2:壹询分数之间的member(包含分数1分数2)
- zrangebyscore zset (分数1 (分数2 :查询分数之间的member (不包含分数1和分数2 )
- zrangebyscore zset分数1分数2 limit start end:查询分数之间的member(包含分数1分数2) ,获得的结果集再次根据下标区间做查询
- zrem zset value :删member
2.2.Redis 整合springboot
- maven等导入
-
1.引入redis依赖 <!-引入redis 依赖-> <dependency> <groupId>org.springframework.boot</groupId> <arti factId>spring-boot-starter-data-redis</artifactId> </depcndency>
2.配置redis spring: redis: database: 1 host: 127.0.0.1 port: 6379 password: Ee123
3. controller测试 @Autowired private RedisTemplate redisTemplate; redi sTemplate. opsP orValue(). set (key, value); (String)redi sTemplate. opsF orValue(). get (key) ; redisTemplate. delete(key) ;
-
- controller种使用
-
@RestController ) @RequestMapping(("redis")) public class RedisController { @Autowired private RedisTempLate redisTempLate ; QGetMapping("/set" ) public object set(String key, String value) { redisT emplate . opsForValue() .set(key, value); return "Ok"; } @GetMapping(" /get" ) public object get(String key) { String。= (String) redisTemplate . opsForValue() .get(key); return 0 ; } @GetMapping(" /delete") public object deLete(String key) { redisTemplate . delete(key); return "0k" ; }
-
- 配置注意
-