redis(一) 安装以及基本数据类型操作
redis(一) 安装以及基本数据类型操作
redis安装和使用
redis安装
wget http://download.redis.io/redis-stable.tar.gz
tar zxvf redis-stable.tar.gz
cd redis-stable.tar.gz
make
make install
redis启动
redis-server
redis-cli shutdown
配置
方法一
redis-server /path/to/redis.conf
redis-server /path/to/redis.conf --loglevel warning //设置日志级别
方法二
redis-cli
redis > CONFIG SET loglevel warning
多数据库的选择
> select
数据库基本操作
(1)添加数据和查找数据,通过set/get命令添加和获取数据
127.0.0.1:> select
OK
127.0.0.1:[]> set bar
OK
127.0.0.1:[]> get bar
""
127.0.0.1:[]> get aaa
(nil)
(2)判断一个键是否存在,exists命令可以判断key是否存在,存在返回1,不存在返回0
127.0.0.1:[]> exists bar
(integer)
127.0.0.1:[]> exists aaa
(integer)
(3)删除数据,del命令删除key,返回值为成功删除key的个数
127.0.0.1:[]> del aaa
(integer)
127.0.0.1:[]> del bar
(integer)
(4)获取value的类型
127.0.0.1:[]> set bar
OK
127.0.0.1:[]> type bar
string
(5)自增和自减,incr 、decr以及incrby和decrby实现整数的加减
127.0.0.1:[]> INCR ab
(integer)
127.0.0.1:[]> INCR ab
(integer)
127.0.0.1:[]> INCRBY ab
(integer)
127.0.0.1:[]> DECR ab
(integer)
127.0.0.1:[]> DECRBY ab
(integer)
(6)增加指定浮点数,incrbyfloat可以指定自增的浮点数
127.0.0.1:[]> INCRBYFLOAT ab 1.1
"2.1"
(7)向尾部追加,append命令可以向字符尾部追加内容
127.0.0.1:[]> set key hello
OK
127.0.0.1:[]> append key world
(integer)
127.0.0.1:[]> get key
"helloworld"
(8)获取字符串长度,strlen获取value的长度
127.0.0.1:[]> STRLEN key
(integer)
(9)批量设置和获取,通过mset和mget命令可以批量执行设置和获取
127.0.0.1:[]> mset key1 va1 key2 va2
OK
127.0.0.1:[]> mget key1 key2
) "va1"
) "va2"
(10)位操作
getbit key offset
setbit key offset
bitcount key [start] [end]
bitop operation destkey key [key ...]
散列类型
{
"id":,
"name":"test"
}
基本操作
(1)存储方法,可以通过hset和hget来设置和获取数据
127.0.0.1:[]> hset user id
(integer)
127.0.0.1:[]> hset user name test
(integer)
127.0.0.1:[]> hget user id
""
127.0.0.1:[]> hget user name
"test"
(2)判断字段是否存在,hexists命令,返回1存在,返回0不存在
127.0.0.1:[]> hexists user id
(integer)
127.0.0.1:[]> hexists user age
(integer)
(3)使用hsetnx(hset if not exists)如果不存在赋值
127.0.0.1:[]> hsetnx user age
(integer)
127.0.0.1:[]> hget user age
""
(4)增加数字
127.0.0.1:[]> hincrby user score
(integer)
127.0.0.1:[]> hget user score
""
(5)删除字段
127.0.0.1:[]> hdel user score
(integer)
127.0.0.1:[]> hget user score
(nil)
如何存储数据?
键 字段 字段值
post:id field value
127.0.0.1:[]> incr userid
(integer)
127.0.0.1:[]> hset user: name test
(integer)
127.0.0.1:[]> hset user: score
(integer)
127.0.0.1:[]> incr userid
(integer)
127.0.0.1:[]> hset user: name test2
(integer)
127.0.0.1:[]> hset user: score
(integer)
添加了两条数据,id为1的名字为test分数为90,而id为2的名字为test2分数为90.
127.0.0.1:[]> hmget user: name score
) "test"
) ""
127.0.0.1:[]> hgetall user:
) "name"
) "test2"
) "score"
) ""
127.0.0.1:[]> hkeys user:
) "name"
) "score"
127.0.0.1:[]> hvals user:
) "test"
) ""
127.0.0.1:[]> hlen user:
(integer)
需要注意的是,散列类型无法获取所有存在的键值,也就是id,如果删除了中间某个id的话,只可以使用exist命令来判断key是否存在。
列表类型
基本操作
列表的基本操作命令都是以l开头的。
127.0.0.1:> lpush user test
(integer)
127.0.0.1:> rpush user test1
(integer)
127.0.0.1:> lpop user
"test"
127.0.0.1:> rpop user
"test1"
127.0.0.1:>
127.0.0.1:> llen user
(integer)
127.0.0.1:> lpush user test
(integer)
127.0.0.1:> llen user
(integer)
127.0.0.1:> lrange user
) "test"
) "test1"
) "test2"
) "test3"
127.0.0.1:> lrange user
) "test"
) "test1"
) "test2"
lrem key count value
@count 为删除个数,大于0的话从左边开始,小于0的话从右边开始
@value 要删除的值
我们可以把数据的id存储在列表中,当某一行数据被删除时候,只需要删除为该value为key即可,而查询数据的时候,需要先从列表中读取所有的id,再从散列表中读取数据。
127.0.0.1:> lrange user -
) "test"
) "test1"
) "test2"
) "test3"
127.0.0.1:> linsert user before test1 test0
(integer)
127.0.0.1:> linsert user after test1 test1.
(integer)
127.0.0.1:> lrange user -
) "test"
) "test0"
) "test1"
) "test1.5"
) "test2"
) "test3"
rdroplpush source destination
从source列表的右侧弹出一个数据,添加到destination列表的左侧
集合类型
127.0.0.1:> sadd key
(integer)
127.0.0.1:> sadd key
(integer)
127.0.0.1:> sadd key
(integer)
127.0.0.1:> smembers key
) ""
) ""
127.0.0.1:> srem key
(integer)
127.0.0.1:> smembers key
) ""
127.0.0.1:> sismember key
(integer)
127.0.0.1:> sismember key
(integer)
sdiff key [key...]
sinter key [key...]
sunion key [key...]
127.0.0.1:> scard key
(integer)
sdiffstore destination key [key...]
sinterstore destination key[key...]
sunionstore destination key[key...]
srandmember key [count]
127.0.0.1:> srandmember key
) ""
) ""
) ""
有序集合类型 sorted set
基本操作
(1)zadd添加元素,并设置分数score
127.0.0.1:> zadd students xiaoming
(integer)
127.0.0.1:> zadd students daxiong
(integer)
127.0.0.1:> zscore students xiaoming
""
127.0.0.1:> zrange students
) "xiaoming"
) "daxiong"
127.0.0.1:> zrangebyscore students
) "xiaoming"
127.0.0.1:> zrangebyscore students
) "xiaoming"
) "daxiong"
获取从0开始的前2个数据
127.0.0.1:> zrangebyscore students limit
) "xiaoming"
) "daxiong"
获取从1开始的前2个数据
127.0.0.1:> zrangebyscore students limit
) "daxiong"
127.0.0.1:> zincrby students xiaoming
""
127.0.0.1:> zincrby students - xiaoming
""
127.0.0.1:> zcard students
(integer)
zcount key min max 127.0.0.1:> zcount students
(integer)
127.0.0.1:> zcount students
(integer)
zrem key [key...]
zremrangebyrank key start stop
zremrangebyscore key min max
redis(一) 安装以及基本数据类型操作的更多相关文章
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...
- Redis快速入门:安装、配置和操作
本文是有关Redis的系列技术文章之一.在之前的文章中介绍了<Redis快速入门:初识Redis>,对Redis有了一个初步的了解.今天继续为大家介绍Redis如何安装.配置和操作. 系列 ...
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取 ...
- 缓存系列之三:redis安装及基本数据类型命令使用
一:Redis是一个开源的key-value存储系统.与Memcached类似,Redis将大部分数据存储在内存中,支持的数据类型包括:字符串.哈希表.链表.集合.有序集合以及基于这些数据类型的相关操 ...
- redis的安装使用以及在python中操作redis
一.Redis介绍: Redis可以看作是一个key-value的存储系统,它为我们提供了丰富的数据结构,包括lists,sets,ordered sets和hashes.还包括了对这些数据结构的丰富 ...
- redis安装启动和数据操作
redis安装和启动 1.安装包下载地址 >> redis基本数据类型 string(字符串和数值) .list(列表/队列).hashmap(哈希表[键唯一]). set(集合[值唯一] ...
- redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化
知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作) 2. 数据类型 (重点) (操作) (理解) 3. 常用指令 (操作) 4. Jedis (重点) (操作) ...
- 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端
1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...
- windows下Redis安装及利用java操作Redis
一.windows下Redis安装 1.Redis下载 下载地址:https://github.com/MicrosoftArchive/redis 打开下载地址后,选择版本 然后选择压缩包 下载 R ...
随机推荐
- row_number和partition by分组取top数据
分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生.这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到.SQL Serve ...
- 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)'
error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Tra ...
- 【转】js判断手机访问网页
原理:原理有两个,第一:通过游览器(browser)判断是否是手机:第二:通过访问终端判断是否是手机(userAgent):但是通常考虑到兼容性,需要这两种原理同时使用:具体的实现如下: JS实现: ...
- tab栏切换的特殊效果
在实际的开发过程中,我们可能会遇到这种需求,如下图 左边是三个tab栏,右边是显示内容的div,当鼠标滑到坐标的tab上时,给它一个高亮显示,让它对应的内容在右边的div中显示出来,当鼠标移出的时候把 ...
- 上传App Store成功后,无法构建版本解决方法
最近iOS10出来了,Xcode也跟着升级到了8,想着App做个更新,于是修改好了代码打算上传新包,无奈总是发现构建不了新版本.这种情况是因为苹果更重视用户的隐私,知道原因就能想到对策了,就是在pli ...
- 记录Python学习中的几个小问题
记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样. 1.Django模板中比较两个值是否相等 错误的做法 <option value="{{group.id}}&q ...
- [UCSD白板题] Changing Money
Problem Introduction In this problem,you will design an algorithm for changing money optimally. Prob ...
- XAF How to show custom forms and controls in XAF (Example)
XAF How to show custom forms and controls in XAF (Example) https://www.devexpress.com/Support/Center ...
- 为Apache动态增加模块
Apache已经安装完毕并投入运行,但是后来却发现部分模块没有加载,当然有两个方法: 1. 一是完全重新编译Apache, 再安装 2. 编译模块为SO文件,使用LoadModule指令加载扩展模块. ...
- php composer使用经验
1.使用composer引用了一个包,但是这个包没有使用命名空间,在项目中该如何使用这个包? 编辑composer.json文件 "autoload":{ "files& ...