redis 查看key_redis入门

redis入门

redis入门Nosq概述redis安装下载redis测试性能基础知识Redis-Key的基本命令redis基本数据类型之Stringredis基本数据类型之Listredis基本数据类型之setredis基本数据类型之hashredis基本数据类型之Zset(有序集合)redis特殊数据类型之geospatial(地理位置)redis特殊数据类型之Hyperloglogredis特殊数据类型之Bitmapsredis事务乐观锁通过Jedis操作redisSpringboot整合redis.conf详解redis持久化(重点)redis持久化之RDB(redis DataBase)redis持久化之AOF(Append Only File)redis发布和订阅Redis主从复制(重点)环境配置哨兵模式(自动选举master)redis缓存穿透和雪崩

Nosq概述

Nosql特点:

  1. 方便扩展(数据之间没有关系,很好扩展)

  2. 大数据量高性能

  3. 数据类型是多样的(不用设计数据库)

RDBMS和NoSQL:

 传统RDBMS-结构化组织-SQL-数据和关系都存在单独的表中-数据定义语言-基础的事务NoSQL-没有固定的查询语言-键值对存储、列存储、文档存储、图形数据库-最终一致性-CAP定理和BASE-高性能、高可用、高扩展

redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

安装下载redis

 yum -y install gccyum -y install gcc-c++wget http://download.redis.io/releases/redis-5.0.7.tar.gz$ tar xzf redis-5.0.7.tar.gzcd redis-5.0.7make distclean  清除缓存[root@kzl redis-5.0.7]# make[root@kzl redis-5.0.7]# make PREFIX=/usr/local/redis-5 install配置环境变量:[root@kzl ~]# vi /etc/profileexport REDIS_HOME=/usr/local/redis-5export PATH=$PATH:$REDIS_HOME/bin[root@kzl ~]# . /etc/profile[root@kzl ~]# mkdir myconfig[root@kzl ~]# cp redis-5.0.7/redis.conf myconfig[root@kzl ~]# vim redis.configdaemonize yes#启动redis[root@kzl ~]# cd /usr/local/redis-5/bin/[root@kzl bin]# redis-server /root/myconfig/redis.conf#测试:[root@kzl bin]# redis-cli -p 6379ping

测试性能

redis-benchmark是一个压力测试

redis-benchmark 命令参数:

af3d900e8f7527db58a7134962ffe287.png

 [root@kzl ~]# redis-benchmark  -h localhost -p 6379 -c 100 -n 10000

105058f4c2cc9fe3030f37f553c135dc.png

基础知识

databases 16默认有16个数据库

基本操作

 127.0.0.1:6379> select 3 #切换数据库127.0.0.1:6379[3]> keys * #查看所有的key127.0.0.1:6379[3]> flushdb #清空当前数据库127.0.0.1:6379[3]> FLUSHALL #清空所有数据库

redis为什么单线程还这么快:

redis是将所有的数据全部放在内存中,所以说使用单线程去操作效率就是最高的,多线程在CPU 上下文切换的时候会降低效率,对于内存系统来说,如果没有上下文切换效率就是最高的。

Redis-Key的基本命令

 127.0.0.1:6379> set key value       #设置key和value值127.0.0.1:6379> exists key          #判断当前key是否存在127.0.0.1:6379> move key value      #移除key中的value值127.0.0.1:6379> expire key 10       #设置key的过期时间,单位秒127.0.0.1:6379> ttl key             #查看key存活时间127.0.0.1:6379> get key             #获取key值127.0.0.1:6379> type key            #查看当前key的类型

redis基本数据类型之String

 127.0.0.1:6379> append key value    #追加字符串,如果当前key不存在,则相当于set key127.0.0.1:6379> strlen key          #获取key的值的字符串长度#自增自减127.0.0.1:6379> incr key            #自增127.0.0.1:6379> decr key            #自减127.0.0.1:6379> incrby key 步长      #自增"步长"127.0.0.1:6379> decrby key 步长      #自减"步长"#截取字符串127.0.0.1:6379> getrange key start end  #截取字符串[start,end]127.0.0.1:6379> getrange key 0 -1       #查看所有的字符串和get key一样#替换127.0.0.1:6379> setrange vkey start value   #从start开始替换字符串为value#设置过期时间和设置不存在则创建#setex(set with expore)         #设置过期时间#setnx(set if not exist)        #不存在则设置127.0.0.1:6379> setex key seconds value     #设置key和value值,只存在seconds127.0.0.1:6379> setnx key value             #设置key和value,当key值不存在的时候#同时设置多个值127.0.0.1:6379> mset k1 v1 k2 v2 ...        #同时设置多个key和value127.0.0.1:6379> msetnx k1 v1 k2 v2 ...      #同时设置多个值,是一个原子操作,要么一起成功,要么一起失败#对象127.0.0.1:6379> mset object:{id}:{filed} value...   #设置对象的值 id表示序列号127.0.0.1:6379> mget object:{id}:{filed}...         #获取对象的字段id与上面一样#getset先获取再设置getset key value    #如果没有key,则输出nil,如果有key,输出旧value,设置value值

redis基本数据类型之List

在redis可以用List设置成队列、栈、阻塞队列

所有的List都是以l开头

 #lpush和rpush127.0.0.1:6379> lpush key value         #将一个或多个值,插入到集合头部(左)127.0.0.1:6379> lrange key start end    #获取key列表的值[start,end]127.0.0.1:6379> rpush key value         #将一个或多个值,插入到集合尾部(右)#lpop和rpop127.0.0.1:6379> lpop key                #移除集合头元素(左)127.0.0.1:6379> rpop key                #移除集合尾元素(右)#Lindex127.0.0.1:6379> lindex key number        #获取下标为number的值#Llen127.0.0.1:6379> Llen key                #返回集合长度#Lrem127.0.0.1:6379> Lren key number value    #移除key集合中number个value值(精确匹配)#Ltrim127.0.0.1:6379> Ltrim key start end      #截取[start,end]的元素,并将value值设置到该集合中#rpoplpush127.0.0.1:6379> rpopLpush source destination    #移除source最后一个元素,添加到destination的第一个元素#lset 更新127.0.0.1:6379> lset key index value            #将列表的下标index的旧value替换为value。该集合必须存在且index的值不为nil(null)#Linsert127.0.0.1:6379> Linsert key before|after pivot value    #插入value,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值