1. Redis是什么 |
---|
与memcached 和 couchbase类似,redis是非常快速的基于内存的键值数据库,使用标准c编写,是使用最广泛的缓存中间件。利用Redis提供的五种基本数据类型(String, List, Set, Zset, Hash)可以做一些很灵活很强大的应用程序组件。
2. 安装 |
---|
CentOS
通过redis的官方网站 http://redis.io/download 可以下载到最新的redis源代码
先安装gcc, 再make编译,然后make install 安装,然后通过redis-server启动redis实例
yum -y install gcc wget http://10.58.8.232:10000/redis-3.0.7.tar.gz tar -xzvf redis-3.0.7.tar.gz make MALLOC=libc make install redis-server redis.conf
启动之后会是这个界面
配置一下 redis.conf,将daemonize 设置为yes
然后再次启动
redis-server redis.conf
此时redis可后台运行
通过redis-cli可以运行测试
SET hello world
GET hello
Windows
Redis官方不支持windows版本,有个开源项目是干这个的 https://github.com/MSOpenTech/redis
安装文件下载地址 https://github.com/MSOpenTech/redis/releases/download/win-2.8.2400/Redis-x64-2.8.2400.msi
双击安装
默认安装路径是 C:\Program Files\Redis
cd到这个目录
设置 redis.windows.conf 的maxheap(建议设置为100M以上)
然后执行 redis-server.exe redis.windows.conf
3. 基本概念和命令 |
---|
单线程
redis使用了单线程,一个实例只使用一个cpu,这样避免了不必要的上下文切换和竞争资源。因为redis不是计算密集型的(数据密集型),所以对cpu要求不高。如果单核性能不够用,可以多开几个进程。
db
db 就相当于MySQL数据库,不同的应用程序数据存储在不同的数据库下,不同的应用程序数据存储在不同的数据库下。同一个db内不允许出现重复的key,因为Redis中的DB是相互独立存在的,所以在不同的db中可以出现重复的key。
默认有db0 ~ db15 16个db, 数量可以在redis.conf中更改
可以通过下面的命令来切换到不同的数据库下
随后,所有的命令将使用数据库3,知道你明确的切换到另一个数据库下
每个数据库都有属于自己的空间,不必担心之间的key冲突。
flushdb 命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。
用 keys * 可以查找当前db(默认是0)下的所有key
常用命令:
SET name "centanet" – 设置name的值为centanet
GET name --获取name的值
INFO 命令可以查看redis服务器当前的状态
4. 数据类型 |
---|
redis目前提供四种数据类型:string,list,set及zset和Hash。
String就是最简单的键值对
List是一个链表结构 ,主要功能是push、pop
Set是无序集合 和数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。
ZSet是有序集合,在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解了有两列的sqlserver表,一列存value,一列存顺序
Hash 数据类型允许用户用Redis存储对象类型, key => [{name: value} ...]
RPUSH friends "Justin"
SISMEMBER nosql "mongo"
SADD rdb "postgresql"
SADD rdb "sql server"
ZADD movies 0.9 "Zootopia"
ZADD movies 0.0001 "TinyTime"
ZADD movies 0.8 "Frozen"
ZADD movies 0.91 "TheGiver"
ZADD movies 0.98 "Boyhood"
ZADD movies 0.7 "Nowyouseeme"
ZRANGE movies 2 4 WITHSCORES --从有序集合中取 2 到 4的元素,并返回分数
HSET session:123 visits 10
ZADD movies 0.9 "Zootopia"
ZADD movies 0.0001 "TinyTime" -- 不能有空格
ZADD movies 0.8 "Frozen"
ZADD movies 0.91 "TheGiver"
ZADD movies 0.98 "Boyhood"
ZADD movies 0.7 "Nowyouseeme"
ZADD movies 0.88 "Madagascar"
SADD group:animation "Frozen"
SADD group:animation "Madagascar"
5. C#测试 |
---|
C#客户端,我们选用 StackExchange.Redis
项目地址 https://github.com/StackExchange/StackExchange.Redis
或者通过nuget 获取
Install-Package StackExchange.Redis
测试代码
1. Redis是什么 |
---|
1. Redis是什么
与memcached 和 couchbase类似,redis是非常快速的基于内存的键值数据库,使用标准c编写,是使用最广泛的缓存中间件。利用Redis提供的五种基本数据类型(String, List, Set, Zset, Hash)可以做一些很灵活很强大的应用程序组件。
2. 安装 |
---|
CentOS
通过redis的官方网站 http://redis.io/download 可以下载到最新的redis源代码,也可以通过232上的静态资源下载3.0.7版本 http://10.58.8.232:10000/redis-3.0.7.tar.gz
先安装gcc, 再make编译,然后make install 安装,然后通过redis-server启动redis实例
启动之后会是这个界面
配置一下 redis.conf,将daemonize 设置为yes
然后再次启动
redis-server redis.conf
此时redis可后台运行
通过redis-cli可以运行测试
SET hello world
GET hello
Windows
Redis官方不支持windows版本,有个开源项目是干这个的 https://github.com/MSOpenTech/redis
安装文件下载地址 https://github.com/MSOpenTech/redis/releases/download/win-2.8.2400/Redis-x64-2.8.2400.msi
双击安装
默认安装路径是 C:\Program Files\Redis
cd到这个目录
设置 redis.windows.conf 的maxheap(建议设置为100M以上)
然后执行 redis-server.exe redis.windows.conf
3. 基本概念和命令 |
---|
单线程
redis使用了单线程,一个实例只使用一个cpu,这样避免了不必要的上下文切换和竞争资源。因为redis不是计算密集型的(数据密集型),所以对cpu要求不高。如果单核性能不够用,可以多开几个进程。
db
db 就相当于MySQL数据库,不同的应用程序数据存储在不同的数据库下,不同的应用程序数据存储在不同的数据库下。同一个db内不允许出现重复的key,因为Redis中的DB是相互独立存在的,所以在不同的db中可以出现重复的key。
默认有db0 ~ db15 16个db, 数量可以在redis.conf中更改
可以通过下面的命令来切换到不同的数据库下
随后,所有的命令将使用数据库3,知道你明确的切换到另一个数据库下
每个数据库都有属于自己的空间,不必担心之间的key冲突。
flushdb 命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。
用 keys * 可以查找当前db(默认是0)下的所有key
常用命令:
SET name "centanet" – 设置name的值为centanet
GET name --获取name的值
INFO 命令可以查看redis服务器当前的状态
4. 数据类型 |
---|
redis目前提供四种数据类型:string,list,set及zset和Hash。
String就是最简单的键值对
List是一个链表结构 ,主要功能是push、pop
Set是无序集合 和数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。
ZSet是有序集合,在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解了有两列的sqlserver表,一列存value,一列存顺序
Hash 数据类型允许用户用Redis存储对象类型, key => [{name: value} ...]
RPUSH friends "Justin"
SISMEMBER nosql "mongo"
SADD rdb "postgresql"
SADD rdb "sql server"
ZADD movies 0.9 "Zootopia"
ZADD movies 0.0001 "TinyTime"
ZADD movies 0.8 "Frozen"
ZADD movies 0.91 "TheGiver"
ZADD movies 0.98 "Boyhood"
ZADD movies 0.7 "Nowyouseeme"
ZRANGE movies 2 4 WITHSCORES --从有序集合中取 2 到 4的元素,并返回分数
HSET session:123 visits 10
ZADD movies 0.9 "Zootopia"
ZADD movies 0.0001 "TinyTime" -- 不能有空格
ZADD movies 0.8 "Frozen"
ZADD movies 0.91 "TheGiver"
ZADD movies 0.98 "Boyhood"
ZADD movies 0.7 "Nowyouseeme"
ZADD movies 0.88 "Madagascar"
SADD group:animation "Frozen"
SADD group:animation "Madagascar"
5. C#测试 |
---|
C#客户端,我们选用 StackExchange.Redis
项目地址 https://github.com/StackExchange/StackExchange.Redis
或者通过nuget 获取
Install-Package StackExchange.Redis
测试代码