资讯专栏INFORMATION COLUMN

redis的几个操作,还有谁不知道的?

nihao / 583人阅读

摘要:是什么是开源许可高级的存储系统。可以用来存储字符串哈希结构链表集合因此常用来提供数据结构服务。安装缺少包则需要通过安装报错缺少包通过如果报错则使用编译可以使用命令测试报错则需要安装包安装方法如下安装完成后运行命令成功。

redis是什么:

Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.

redis是开源,BSD许可,高级的key-value存储系统。

可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务。

安装

wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar xzf redis-5.0.4.tar.gz
cd redis-5.0.4
make

缺少make包, 则需要通过 sudo apt-get install make 安装

make报错 /bin/sh: cc: command not found 缺少gcc包, 通过 sudo apt-get install gcc

如果报错 fatal error: jemalloc/jemalloc.h: No such file or directory 则使用 make MALLOC=libc 编译

可以使用命令 make test 测试. 报错 You need tcl 8.5 or newer in order to run the Redis test 则需要安装tcl包.

安装方法如下:

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz 
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/ 
cd /usr/local/tcl8.6.1/unix/ 
sudo ./configure 
sudo make 
sudo make install

安装完成后运行 make test 命令成功。

需要安装到指定目录, 则可以使用 make install PREFIX=/mnt/d/redis 注意添加配置文件

启动命令

启动 sh /redis-server ../conf/redis.conf
以后台进程的方式启动需要修改 redis.conf 文件的 daemonize=yes
客户端连接 sh /redis-cli -h 192.168.1.123 -p 6379
配置文件中的 bind 用来绑定服务端的ip, 为了安全,默认不允许外网访问

默认保护模式 protect-mode=yes

多数据支持

默认支持16个数据库, databases=16 , 默认使用的是DB 0 . redis数据库不支持自定义名称, 且不能多带带做授权, 各个数据库之间并非完全隔离. flushall 命令可以清空redis中所有的数据.

select 3 转到索引为3的数据库

使用命令

keys prifix 查找到所有开头为prifix的键, pattern 可以使用[? [] ]匹配
EXISTS key 是否存key
type key 获取数据结构
字符类型

key的最大存储为512M.

set key value 比较重要的 setnx
get key
incr key 递增值 incrby key [step] 递增指定的step
strlen key 获得长度
mget key1 key2 key3 批量获取多个key的值
set key1 value1 key2 value2 批量设置多个键值
key的设计可以参看阿里的规范, 例如 业务名:表名:id

列表类型

lpush key value 左边push数据,对应的是 rpush
lpop key 获取数据, 同时数据被移除,对应的是 rpop
llen key 列表长度
lrange key start stop 获取片段, start=-1 表示从头,stop=-1表示到结尾
lrem key count value 删除
lset key index value 设置索引的值
散列类型

不支持数据类型嵌套, 比如hash中存储一个list.

hset key field value
hget key field
hmset key field1 value1 field2 value2
hmget key field1 field2
hgetall key
hexists key field
hincryby
hsetnx
hdel key field

集合类型

和list相比, 不能有重复元素, 且是无序的

sadd key member...
smembers key
sdiff key1 key2
sunion key1 key2

有序集合

zadd key score member
zrange key start stop withscores

可以用来做排名统计

redis的事务

比较鸡肋, 不建议使用, 有时候不能回滚

multi 开启事务;

set get... 等操作为具体的事务操作

exec 提交事务

过期时间

expire key timeout 设置超时时间

ttl key 获得key过期时间

发布订阅

publish channel message

subscribe channel

分布式锁

可使用 setnx 实现

感谢你耐心看完了文章…

关注作者,我会不定期在思否分享Java,Spring,MyBatis,Redis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构,BATJ面试 等资料…

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74566.html

相关文章

  • ELSE 技术周刊(2017.10.30期)

    摘要:技术纵横调试指南协议是新加入的调试协议,通过与交互,同时基于浏览器的提供了图形化的调试界面。使得多业务线在复杂架构情况下能够独立开发测试,互不干扰,并统一调用接口。技术周刊由小组出品,汇聚一周好文章,周刊原文。 本期推荐 写在 2017 的前端数据层不完全指北 在前端技术的发展中,各个层面演进出不同的技术方案,如数据类型层面的 TypeScript,Flow,PropTypes,应用架...

    AprilJ 评论0 收藏0
  • 云栖大会上有哪些亮点值得关注?

    摘要:年云栖大会在杭州举行,据主办方介绍本次云栖大会吸引了五万多人参会,但是在密集的会议中又有哪些亮点值得关注领导致辞很无聊每次重要的大会,都离不开一些政府要员们的参与,但是在高新技术的互联网,云计算,大数据领域真心不敢恭维,除了让整个会议前半场 2016年云栖大会在杭州举行,据主办方介绍本次云栖大会吸引了五万多人参会,但是在密集的会议中又有哪些亮点值得关注?领导致辞很无聊每次重要的大会,都离不开...

    Lavender 评论0 收藏0
  • 史上最全阿里 Java 面试题总结

    摘要:以下为大家整理了阿里巴巴史上最全的面试题,涉及大量面试知识点和相关试题。的内存结构,和比例。多线程多线程的几种实现方式,什么是线程安全。点击这里有一套答案版的多线程试题。线上系统突然变得异常缓慢,你如何查找问题。 以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题。 JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节。 S...

    winterdawn 评论0 收藏0
  • 三年Java后端面试经历

    摘要:前言三年后端开发经验,面的目标岗位是的高级后端开发。面试结束,应该没有后续。 前言 三年Java后端开发经验,面的目标岗位是20k-35k的高级后端Java开发。 第一场,基本裸面,关于曾经的项目部门答的不好,所以还是得好好准备。 某C轮在线旅游公司 笔试 先做半个小时的笔试题,一共六个题目,两道go语言的基础题,一道斐波那契相关,一道数据库行列转置,一道实现一个栈,还有一道是百万计...

    darry 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<