1.linux 安装redis :

Linux 下安装

下载地址:http://redis.io/download,下载最新稳定版本。

本教程使用的最新文档版本为 2.8.17,下载并安装:

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

make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:

下面启动redis服务.

注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。

$ cd src
$ ./redis-server ../redis.conf

2、不重启Redis设置密码:

在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。

redis 127.0.0.1:6379> config set requirepass test123

查询密码:

redis 127.0.0.1:6379> config get requirepass
   (error) ERR operation not permitted

密码验证:

redis 127.0.0.1:6379> auth test123

3.配置redis:
> CONFIG GET *
参数说明
redis.conf 配置项说明如下: redis.conf 配置项说明如下:
序号 配置项 说明 daemonize no Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程(Windows 不支持守护线程的配置为 no ) pidfile /var/run/redis.pid 当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定 port 指定 Redis 监听端口,默认端口为 ,作者在自己的一篇博文中解释了为什么选用 作为默认端口,因为 在手机按键上 MERZ 对应的号码,而 MERZ 取自意大利歌女 Alessia Merz 的名字 bind 127.0.0.1 绑定的主机地址 timeout 当客户端闲置多长时间后关闭连接,如果指定为 ,表示关闭该功能 loglevel notice 指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 notice logfile stdout 日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null databases 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id save <seconds> <changes>
Redis 默认配置文件中提供了三个条件: save save save 分别表示 秒( 分钟)内有 个更改, 秒( 分钟)内有 个更改以及 秒内有 个更改。 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合 rdbcompression yes 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大 dbfilename dump.rdb 指定本地数据库文件名,默认值为 dump.rdb dir ./ 指定本地数据库存放目录 slaveof <masterip> <masterport> 设置当本机为 slav 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步 masterauth <master-password> 当 master 服务设置了密码保护时,slav 服务连接 master 的密码 requirepass foobared 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭 maxclients 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients ,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息 maxmemory <bytes> 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区 appendonly no 指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no appendfilename appendonly.aof 指定更新日志文件名,默认为 appendonly.aof appendfsync everysec
指定更新日志条件,共有 个可选值: no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用 fsync() 将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(折中,默认值) vm-enabled no 指定是否启用虚拟内存机制,默认值为 no,简单的介绍一下,VM 机制将数据分页存放,由 Redis 将访问量较少的页即冷数据 swap 到磁盘上,访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析 Redis 的 VM 机制) vm-swap-file /tmp/redis.swap 虚拟内存文件路径,默认值为 /tmp/redis.swap,不可多个 Redis 实例共享 vm-max-memory 将所有大于 vm-max-memory 的数据存入虚拟内存,无论 vm-max-memory 设置多小,所有索引数据都是内存存储的(Redis 的索引数据 就是 keys),也就是说,当 vm-max-memory 设置为 的时候,其实是所有 value 都存在于磁盘。默认值为 vm-page-size Redis swap 文件分成了很多的 page,一个对象可以保存在多个 page 上面,但一个 page 上不能被多个对象共享,vm-page-size 是要根据存储的 数据大小来设定的,作者建议如果存储很多小对象,page 大小最好设置为 或者 64bytes;如果存储很大大对象,则可以使用更大的 page,如果不确定,就使用默认值 vm-pages 设置 swap 文件中的 page 数量,由于页表(一种表示页面空闲或使用的 bitmap)是在放在内存中的,,在磁盘上每 个 pages 将消耗 1byte 的内存。 vm-max-threads 设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4 glueoutputbuf yes 设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启 hash-max-zipmap-entries
hash-max-zipmap-value 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法 activerehashing yes 指定是否激活重置哈希,默认为开启(后面在介绍 Redis 的哈希算法时具体介绍) include /path/to/local.conf 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件
daemonize no
Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程(Windows 不支持守护线程的配置为 no )
requirepass foobared
设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭
 
 

4.连接redis:

1
2
3
4
[root@fjgh redis]# ./redis-cli -h 192.168.100.109  -p  6379 -a yourpasswoed
192.168.100.109:6379> get setUpTime
"201906191227"
192.168.100.109:6379>

Redis数据结构

Redis有五种存储键与不同数据结结构类型之间的映射,分别是STRING(字符串),LIST(列表),SET(集合),HASH(散列),ZSET(有序集合),熟练运用这五种数据结构才是掌握Redis的核心所在,不可轻视。

数据结构 存储值 读写能力
STRING 字符串,整数,浮点数 对字符串或部分进行操作;对整数和浮点数执行自增或者自减操作
LIST 链表(每个节点都包含一个字符串) 链表的推入,弹出;链表的修建;取值;查值;移除;
SET 包含字符串的无序收集器,不可重复 添加;获取;移除;检查存在;计算交集,并集,差集;随机取值;
ZSET 字符串成员与浮点数分值之间的有序映射,元素的排序由分值决定 添加;获取;移除;
HASH 包含键值对的无序散列表 添加;获取;移除;

操作redis:

[root@hostuser src]# ./redis-server ../redis.conf
[root@hostuser src]# ./redis-cli
127.0.0.1:6379> get db
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth redis
OK
127.0.0.1:6379> get db
(nil)
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "redis"
127.0.0.1:6379> set db testdb
OK
127.0.0.1:6379> get db
"testdb"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get db
(nil)
127.0.0.1:6379[1]> set db testdb2
OK
127.0.0.1:6379[1]> get db
"testdb2"
127.0.0.1:6379[1]> keys 8
(empty list or set)
127.0.0.1:6379[1]> keys *
1) "db"
127.0.0.1:6379[1]> select 1
OK
127.0.0.1:6379[1]> select 10
OK
127.0.0.1:6379[10]> select 0
OK
127.0.0.1:6379> get db
"testdb"
127.0.0.1:6379> use testdb
(error) ERR unknown command 'use'
127.0.0.1:6379> set yourname
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> set yourname zhhan
OK
127.0.0.1:6379> get yourname
"zhhan"
127.0.0.1:6379> hset myhash k1 v1
(integer) 1
127.0.0.1:6379> hget myhash
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget myhash k1
"v1"
127.0.0.1:6379> hset myhash k2 v2
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "k1"
2) "v1"
3) "k2"
4) "v2"
127.0.0.1:6379> sadd myset set1
(integer) 1
127.0.0.1:6379> smembers set1
(empty list or set)
127.0.0.1:6379> smembers myset
1) "set1"
127.0.0.1:6379> sadd myset set2
(integer) 1
127.0.0.1:6379> smembers myset
1) "set1"
2) "set2"
127.0.0.1:6379> sadd myset {"user": "pwd"}
Invalid argument(s)
127.0.0.1:6379> sadd myset {user: pwd}
(integer) 2
127.0.0.1:6379> smembers myset
1) "{user:"
2) "pwd}"
3) "set1"
4) "set2"
127.0.0.1:6379> lpush mylist a b c
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> rpush x y z
(integer) 2
127.0.0.1:6379> rpush mylist x y z
(integer) 6
127.0.0.1:6379> lrange mylist 0 -1
1) "c"
2) "b"
3) "a"
4) "x"
5) "y"
6) "z"
127.0.0.1:6379> zadd myzset k1 v1
(error) ERR value is not a valid float
127.0.0.1:6379> zadd myzset 1 one
(integer) 1
127.0.0.1:6379> zadd myzset k2 2
(error) ERR value is not a valid float
127.0.0.1:6379> zadd myzset 3 v3
(integer) 1
127.0.0.1:6379> Zinterstore
(error) ERR wrong number of arguments for 'zinterstore' command
127.0.0.1:6379> zrange zset 0 -1 withscores
(empty list or set)
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "one"
2) "1"
3) "v3"
4) "3"
127.0.0.1:6379>

redis 基础操作教程的更多相关文章

  1. Redis 基础操作

    [Redis 基础操作] 1.ECHO message. Returns message. 2.PHING Returns PONG if no argument is provided, other ...

  2. 【转】Redis 基础操作和命令

    笔记 Redis提供了六种基本的数据结构:String,Hash,List,Set,Sorted Set,HyperLogLog. Redis的特点:纯内存操作,单线程工作模型,非阻塞I/O多路复用. ...

  3. redis基础操作~~数据备份与恢复、数据安全、性能测试、客户端连接、分区

    数据备份与恢复 数据备份redis save 命令用于创建当前数据库的备份. redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文 ...

  4. 三、Redis基础操作

    前言: Redi是key-value的NoSQL,我们用Redis提供的redis-cli就能操作String类型key和各种数据类型value.但是放入的不是特定类型数据,添加的都是一个一个Stri ...

  5. redis基础操作概念等笔记

    Redis常用配置 daemonize ->是否是后台进程 port ->对外端口 logfile ->Redis 系统日志 dir ->Redis 工作目录 Redis的链接 ...

  6. python 包之 redis 数据库操作教程

    一.安装 redis 是一个 Key-Value 数据库 Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型 pip inst ...

  7. redis基础操作

    /** * redis的Java客户端Jedis测试验证 * * @author */ public class Test { /** * 非切片客户端链接 */ private Jedis jedi ...

  8. Java代码redis基础操作

    maven依赖包: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...

  9. redis简单操作

    一.redis 基础操作 1.1.string 类型及操作 string 是最简单的类型,一个key对应一个value,string类型是二进制安全的.redis的string可以包含任何数据. 1. ...

随机推荐

  1. mysql的优化(经典必看)

    1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽 ...

  2. PP: Pattern Trails: visual analysis of pattern transitions in subspaces

    Problem: 1. We can't find patterns in full attribute space, and patterns may only be found in smalle ...

  3. Spring核心知识

    目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...

  4. python pymysql 基本使用

    from pymysql import * # 1.创建连接数据库 conn = connect(host="localhost", port=3306, user="r ...

  5. codeforces 1283E New Year Parties (贪心)

    链接:https://codeforces.com/contest/1283/problem/E 题意: 有n个人住在一些房子里,有的人住在同一个房子里.每个人可以选择搬去他的房子左边那个房子或者右边 ...

  6. [HTML] websocket的模拟日志监控界面

    模拟命令行的界面效果,使用swoole作为websocket的服务,重新做了下html的界面效果 <html> <head> <title>SwLog Montio ...

  7. 解决windows配置visual studio code调试golang环境问题

    写这篇随笔是为了Mark下在这个过程中配到的几个问题 1.具体过程可参考https://www.cnblogs.com/JerryNo1/p/5412864.html,Jerry博主写的非常详细了 1 ...

  8. DVWA全级别之XSS(Reflected)、XSS(Stored)【跨站脚本攻击】

    XSS XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需要强 ...

  9. Java 读取网络资源文件 获取文件大小 MD5校验值

    Java 读取网络资源文件 获取文件大小 MD5校验值 封装一个文件操作工具类: package c; import java.io.*; import java.net.HttpURLConnect ...

  10. AWD - IDE For Web dev汉化版

    一款安卓上的HTML网页编辑软件,不错哦 下载链接 http://t.cn/AiRIvtoL