专栏首页JMCuiRedis学习一(基础入门).

Redis学习一(基础入门).

一、前言

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、key-Value 的数据库、并提供多种语言的API。

    通常,Redis 将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用截图的方式,将内存中的数据不断写入磁盘;或使用类似 MySQL 的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。

    解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。

二、特点

  • 支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用。
  • 丰富的数据类型存储:String、list、set、zset、hash。
  • 支持数据的备份,即master-slave模式的数据的备份。
  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s。
  • 所有的操作都是基于原子性的。

三、数据对象

  • String

--redis的String可以包含任何数据,比如jpg图片或者序列后的对象,一个key最大能存储512MB。

  • Hash

--hash 是一个String类型的field 和 value 的映射表,hash 特别适合用于存储对象。每个hash可以存储2^32-1键值对 。

  • list

--Redis 列表是简单的字符串列表,按照插入的顺序可以在列表的头部(左边)或者尾部(右边)添加元素。

  • set

--Redis的Set是String类型的无序集合。集合是通过hash表实现的,所以。添加、删除、查找的复杂度都是O(1)。

  • zset

--zset 和 set一样也是String的类型元素的集合,且不允许重复的队员,不同的是每个元素都会关联一个double类型的score。redis正是通过score来为集合中的成员进行从小到大的排序。分数(score)可以重复。 添加元素到集合,元素在集合中存在则对应更新相应的score。

四、安装

1、Window

--服务端   1、window下载地址:https://github.com/MicrosoftArchive/redis/releases   2、打开一个 cmd 窗口 使用cd命令切换目录 E:\redis 运行 redis-server.exe redis.windows.conf --客户端   1、打开一个 cmd 窗口 使用cd命令切换目录 E:\redis 运行 redis-cli.exe -h 127.0.0.1 -p 6379 -a 'mypass'   2、set myKey abc / get myKey

2、Linux

--服务端   1、 wget http://download.redis.io/releases/redis-2.8.17.tar.gz   2、 tar -zxvf redis-2.8.17.tar.gz redis-2.8.17   3、 cd redis-2.8.17   4、 make   5、 cd src   6、 ./redis-server redis.conf --客户端   1、 cd src   2、 ./redis-cli   redis> set foo bar   OK   redis> get foo   "bar"

五、命令

1、String

-- set key value 保存key和value。 -- get key 根据key得到value。

2、Hash

-- hmset myhash key1 val1 key2 val2 存储hash值 -- hget myhash key1 根据hash中的某个key得到value -- hgetall myhash 得到hash中的所有值 -- HDEL key field1 [field2] 删除一个或多个哈希字段 -- HKEYS key 获取所有哈希表中的字段 -- HLEN key 获取哈希字段数

3、List

-- lpush key val 向列表左边插入元素 -- lpop key 从列表左边移出元素 -- rpush key val 向列表右边插入元素 -- rpop key 从列表右边移出元素 -- rpushx key value 为已存在的列表添加值 -- LRANGE key start stop 获取列表指定范围内的元素 -- lindex key index 通过索引获取列表中的元素

4、Set

-- sadd key value 添加元素 -- smembers key 根据key获得集合中的所有成员 -- scard key 获取集合的成员数 -- sdiff key1 key2 返回给定所有集合的差集(key2的集合相对于key1集合的差集) -- sunion 返回给定集合的并集 -- smove source des member 把member从source集合到des集合 -- sdiffstore des key1 key2 返回给定所有集合的差集,并存储在des中 -- srandmember key count 返回集合中一个或多个随机数 -- spop key1 移除并返回集合中的一个随机元素 -- sismember key mem 判断mem元素是否存在

5、Zset

-- zadd page 0 123 -- zadd page 1 234 -- zrangebyscore page 0 10

6、通用

-- 删除key:DEL key -- 查看所有的key:keys * -- 序列化给定key,并返回被返回的值:DUMP key -- 检查给定key是否存在:EXISTS key -- 为key设置过期时间:EXPIRE key seconds -- 为key设置过期时间(时间戳):EXPIREAT key timestamp -- 为key设过期时间(毫秒):PEXPIRE key milliseconds -- 查找所有符合给定模式的key:KEYS pattern -- 移除key的过期时间,key将持久保存:persist key -- 以毫秒为单位返回key的剩余过期时间:PTTL key -- 返回key所存储的值得类型:TYPE key

HyperLogLog:  -- 添加指定元素到HyperLogLog中:PFADD key element  -- 返回给定的HyperLogLog的基数估计值:PFCOUNT key -- 将多个HyperLogLog 合并为一个HyperLogLog:PFMERGE destkey sourcekey

订阅命令: -- 订阅一个或多个符合给定模式的频道:psubscribe pattern -- 退订一个或多个符合给定模式的频道:punsubscribe pattern -- 查看订阅与发布系统状态:pubsub subcommand -- 将信息发布到指定的频道:publish channel message -- 订阅给定的一个或多个频道的信息:subscribe channel -- 退订给定的频道:unsubscribe channel

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis学习二(数据操作).

    在 redis-cli 中使用中文时,必须打开 --raw 选项,才能正常显示中文。

    JMCui
  • 多线程编程学习五(线程池的创建)

    一、概述 New Thread的弊端如下:        a、每次New Thread新建对象性能差。        b、线程缺乏统一的管理,可能无限制的新建...

    JMCui
  • [转] 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

    四层负载均衡工作在 OSI 模型中的四层,即传输层。四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体类型,然后经过负载...

    JMCui
  • Redis-Nosql数据库入门

    简介 Redis是Nosql数据库的一种,可基于内存亦可持久化的日志型、是一个Key-Value数据库,多用在缓存方面 安装 Windows 下载地址, 最...

    李家酒馆酒保
  • redis配置信息以及常用命令

    本来不打算写这篇的,因为网上有很多这种的,最后想想,既然打算做一个redis系列,还是把这一篇补上,刚好这段时间有个同事做了一个redis的基础培训,整理的很好...

    程序员爱酸奶
  • Java 快速排序 关于起始方向的选择问题 为什么一定要从右边开始

    最后i、j 停留的位置的值肯定是要 小于 key 的 此时交换索引 j 和最左边元素key 符合将小于key的值放到key左边这一条件

    heasy3
  • 如何处理redis集群的hot key和big key

    redis 集群部署方式大部分采用类 Twemproxy 的方式进行部署。即通过 Twemproxy 对 redis key 进行分片计算,将 redis ke...

    akayzhang
  • 高并发系统设计-redis技术梳理

    架构师就是梳理技术,整理文档,落地技术方案,首先架构师需要梳理下redis能为我们解决什么问题,以及redis的技术门槛,redis的优势和缺点。

    用户6969969
  • redis

    1)Redis:REmote DIctionary Server(远程字典服务器)

    用户2337871
  • 【Redis】Redis常用命令

    expire key seconds 当超过过期时间,会自动删除,key在seconds秒后过期 expireat key timest...

    用户5522200

扫码关注云+社区

领取腾讯云代金券