分布式系列十: Redis安装和命令
redis是一个开源的, 内存数据结构存储, 一般用来作为数据库,缓存和消息代理.
Redis的优势
多种数据结构
- 字符类型String
- 散列类型Hash
- 列表类型List
- 集合类型Set
- 有序集合类型SortedSet
功能丰富
- 超时时间设置
- 可以通过列表类型来实现分布式队列
- pub/sub 消息模式
简单
- 多种操作命令
Redis应用场景
- 缓存
- 秒杀,抢购等
- 单点登陆, 分布式session等
- 网站访问排名
- 消息队列
安装
- 手工下载或通过
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
是否存keytype key
获取数据结构
字符类型
key的最大存储为512M.
set key value
比较重要的setnx
get key
incr key
递增值incrby key [step]
递增指定的stepstrlen 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
获取全部信息, 包括key,valuehexists 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
获取片段 withscores 用来获取分数
可以用来做排名统计.
redis的事务
比较鸡肋, 不建议使用, 有时候不能回滚
multi
开启事务;
set get...
等操作为具体的事务操作
exec
提交事务
过期时间
expire key timeout
设置超时时间
ttl key
获得key过期时间
发布订阅
publish channel message
subscribe channel
分布式锁
可使用setnx
实现.
分布式系列十: Redis安装和命令的更多相关文章
- Redis系列一 Redis安装
Redis系列一 Redis安装 1.安装所使用的操作系统为Ubuntu16.04 Redis版本为3.2.9 软件一般下载存放目录为/opt,以下命令操作目录均为/opt root@ubunt ...
- Redis安装、命令以及设置密码遇到的问题
一.下载Redis 如果没有 安装wget先安装wget和gcc(使用make的时候会用上) wget http://download.redis.io/releases/redis-4.0.8.ta ...
- 分布式系列十二: Redis高级主题
持久化 Redis 支持持久化, 其持久化数据有两种方式. 两种可以同时使用. 如果同时使用, Reids 在重启时将使用 AOF 方式来还原数据. RDB 按照一定策略定时同步内存的数据到磁盘.文件 ...
- 分布式系列十五: MongoDB数据库
MongoDB 是基于分布式文件存储的数据库. 开发语言是C++. 具有高性能,可扩展的特点. 是NoSql中最像关系数据库的. 什么是NoSql NoSQL 是 Not only SQL 的缩写. ...
- 分布式系列十一: Redis进阶
分布式锁 数据库 数据库是使用唯一索引不允许重复的特性(或自定义实现如乐观锁). 但持有锁的进程如果释放锁时异常则容易导致死锁. zookeeper 使用临时节点, watcher可以获得节点被删除的 ...
- redis安装和命令使用
前言: redis是一个key-value的存储系统,value支持string.list.set.zset.hash五种类型,且支持数据的本地存储 一.安装redis 前提:linux下需要安装 ...
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- 分布式缓存技术redis系列(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...
随机推荐
- 01-Django介绍和安装
01-Django介绍和安装 1.Django介绍 1.1介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M(Model),视图V(View)和控 ...
- Spring Boot – Jetty配置
前言 默认情况下,Spring Boot会使用内置的tomcat容器去运行应用程序,但偶尔我们也会考虑使用Jetty去替代Tomcat:对于Tomcat和Jetty,Spring Boot分别提供了对 ...
- 使用pycharm进行远程开发部署调试设置 与 远程部署调试是否必须使用远程主机的解释器?
远程开发部署调试目的: 配置pycharm远程部署调试主要用于本地代码与远程服务器上的代码进行同步,使得本地代码经过修改后,可以很容易的同步到远程服务器上.同时设置pycharm的解释器为远程服务器的 ...
- Bitmap的使用习惯——及时释放Bitmap占用的内存
当Bitmap不再需要使用时,我们应该回收它占用的内存,如果我们直接把指向bitmap的引用置null的话,这样bitmap还是会存在内存中,直到GC机制起作用时,才可能会把这个bitmap回收.这样 ...
- PowerBI分析Exchange服務器IIS運行日誌
PowerBI分析Exchange服務器IIS運行日誌 啟用狀態 PowerBI分析Exchange服務器IIS運行日誌 那麼在C:\inetpub\logs\LogFiles目錄下您才會看到如下日誌 ...
- Nmap小技巧——探测大网络空间中的存活主机
Nmap快速探测空间主机是否存活的技巧(来自lijiejie师傅): nmap -v -sn -PE -n --min-hostgroup --min-parallelism -oX nmap_out ...
- 【CTSC2016】时空旅行
链接 http://uoj.ac/problem/198 题解 首先要发现答案要我们求这个式子: \[ ans=min\bigl((x_i-x)^2+c_i\bigr) \] 显而易见的是这种时空嫁接 ...
- qcow2虚拟磁盘映像转化为vmdk
qcow2虚拟磁盘映像转化为vmdk yum install qemu-img –y qemu-img info source-name.vmdk 查看虚拟机信息 qemu-img convert - ...
- DFA确定有限状态自动机
DFA 在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automaton, DFA)是一个能实现状态转移的自动机.对于一个给定的属于该自动机的状态和 ...
- CF1153D Pigeon d'Or
Description 给一棵树,每个点是子节点的最大值或最小值,将叶子节点填上整数,使这棵树的根最大. Solution 明显的\(dp\)题,代码很短. 分类讨论如下: 1.如果是叶子节点,\(d ...