不由喊出一句ig牛逼!哈哈哈 这个话题是否是有点过期了?但说到Redis,真的是被强行灌输的,处处都会被安利Redis,吓得只会mysql和oracle的我,赶忙去get一波..html
经常使用的关系型数据库:mysql oraclemysql
特色:redis
经常使用的非关系型数据库:redis Memcached算法
特色:sql
开源库的安装方法几乎都同样,更详细的介绍能够参考个人这篇博客:https://www.cnblogs.com/liudw-0215/p/9917422.html数据库
至此,Redis安装成功!服务器
redis都是以键值对key-value存储的,key必定是字符串类型,value多是字符串、list、set、sortedset和hash类型!数据结构
set str1 hello
get str1
mset str2 123 str2 456
mget str1 str2 str3
能够看到key是不容许重复的!oracle
list能够理解为一串字符串,也能够理解为链表;操做过程当中,既能够按照队列操做,也能够按照栈进行操做函数
lpush ls1 aaa bbb ccc
查询要稍微说一下,命令是lrange+key+范围,要说明一下范围该怎么表示呢?从0开始能够,那么结束该怎么表示呢?不知道一共有多少个?redis采用-1表示最后一个,-2表示倒数第二个,查询第一个到最后一个命令:
lrange ls1 0 -1
查询结果以下:
说明:注意到显示顺序了么?“l”表明从左开始插入,也就是头插法;若是理解数据结构的头插法,跟这是同样的,由于redis底层也是用数据结构+算法实现的!
rpush ls2 1 2 3 4
lpop ls2
rpop ls2
求list长度
llen ls1
set集合是没有顺序的,元素是惟一的
插入
sadd set 1 2 3
查询
smembers set
求差集(A-B)
sdiff A B
求交集
sinter A B
求并集
sunion A B
运行结果以下:
redis将数据存储在内存,速度比存在磁盘中快不少,大约在百万量级的差异,可是宕机数据就没了,这是不容许的!Redis提供了两种解决办法。
特色:存数据
特色:存命令
hiredis又是什么鬼东西呢?它是封装好的操做Redis的C语言API,安装以后,C语言就能够调用API,去操做Redis了。
依然很简单,Github首页搜索:hiredis,下载,解压,make,sudo make install,一鼓作气!
看到安装目录下,有个examples目录,这个目录就是例子,能够看到这个目录下,有不少例子,能够用example.c,而后编译一下,个人版本会报错,我修改了包含的头文件,而后正常,运行结果以下:
至此,hiredis安装成功!
封装好的API接口有不少,但掌握4个就能够完成基本的增删改查了
经过IP、端口进行链接,并返回redisContext,用于下面的使用
函数原型:
void *redisCommand(redisContext *c, const char *format, ...);
参数:
第一个参数:就是redisConnect的返回值
其他参数就是可变参数了
返回值:
就颇有意思了,能够参照下表:
void freeReplyObject(void *reply);
void redisFree(redisContext *c);