Redis基础教程-数据类型hash命令之hset与hsetnx的基本用法

hash是redis的一个比较常用的数据类型,这个数据类型也提供了一些常用的方法如hget.hgetall,hincrby,hset,hkeys,hlen,hdel等。

hset是将指定字段的值设置到hash的key中。语法格式hset key field value

我们创建一个新的key user_1,并写入age和sex的值

127.0.0.1:6379> hset user_1 age 30
 (integer) 1
 127.0.0.1:6379> hset user_1 sex male
 (integer) 1

我们设置user_1的age为30,sex为male。我们来获取下user_1的值。获取用hget

127.0.0.1:6379> hget user_1 age
 "30"
 127.0.0.1:6379> hget user_1 sex
 "male"

这里可以看到age和sex的值分别为30和male和设置的一样。hset命令会覆盖key中已经存在的field的值。我们来试下

127.0.0.1:6379> hset user_1 age 80
 (integer) 0
 127.0.0.1:6379> hset user_1 sex female
 (integer) 0
 127.0.0.1:6379> hget user_1 age
 "80"
 127.0.0.1:6379> hget user_1 sex
 "female"

通过获取sex和age的值,我们发现值已经被覆盖了。大家有没有发现第二次设置age和sex的值的返回值是0,不是1,这是为什么呢?因为第一次设置的时候key user_1是不存在的,这个时候redis会创建一个key为user_1的hash数据,第二次hset的时候,key user_1已经存在了,这个时候是不用创建user_1这个key的。

在实际的应用中我们可能会用hash来缓存一些用户信息,这个时候key就可以定义的和用户id相关比如user_1

linux命令中的1,2等数字的解释

很多开发者应该都会使用到linux,关于linux的的一些常用命令可能也都比较熟悉,比如which,git等。我们可能不会关注还有which(1),git(1)这种的写法。

最近看一个英文的书籍,发现文中有which(1)这样的写法,是要实现which(1)的功能,当时就感觉很奇怪,写实现which的功能不就行了吗?为什么还要加个数字1呢!

继续阅读“linux命令中的1,2等数字的解释”

解决 git status 文件名显示数字|git status file name display numbers

git是现在很常用的一种版本控制的软件。如果有文件修改或者新增通过git status可以很清楚的看到。最近发现中文名的文件在git status的时候发现不是中文而是数字

看到这样的文件名发现完全懵逼了,不知道到底是新增了什么文件,修改了哪些文件,是不是有些文件的修改只是为了本地调试是不用提交到版本库的。怎么办呢?git 提供了解决这个问题的配置。

git config --global core.quotepath false

在git status看看

中文不再是数字了,正常显示了。

linux更改 docker 为非 root 用户运行

linux用官方的package manager下载docker,一般都是sudo apt-get install docker,或者sudo yum install docker.安装后的docker其实是需要root用户才能运行,直接下deb,rpm包安装后也是需要root用户才能运行的。如果更改为非root运行docker要怎么做呢?

首先创建一个docker的group,sudo groupadd docker,如果这个group已经存在可以忽略 .

其次赋予docker的权限,sudo usermod -aG docker $USER 这个是把docker权限赋予为当前登录用户.

最后更新权限生效,系统重启后就可以使用普通用户权限执行 docker, 如果不想重启,可以使用下面的命令更新并激活组权限newgrp docker .希望能帮助需要帮助的人。

linux 破解navicat

这里的方法不支持16或者更高的版本

install c++ Environmental Science

sudo apt-get install build-essential sudo apt-get install gdb

install navicat keygen denpencies

# install capstone
$ sudo apt-get install libcapstone-dev

# install keystone
$ sudo apt-get install cmake
$ git clone https://github.com/keystone-engine/keystone.git
$ cd keystone
$ mkdir build
$ cd build
$ ../make-share.sh
$ sudo make install
$ sudo ldconfig

# install rapidjson
$ sudo apt-get install rapidjson-dev

# install openssl
$ sudo apt-get install openssl

编译navicat keygen

$ git clone -b linux --single-branch https://gitee.com/andisolo/navicat-keygen.git
$ cd navicat-keygen
$ make all

生成完成后,你会在 bin/ 文件夹下看到编译后的keygen/patcher

下载官方安装包,如navicat16-premium-cs.AppImage,然后把安装包的文件到处到某个目录下如:

mkdir ~/navicat
sudo mount -o loop ~/Downloads/navicat16-premium-cs.AppImage ~/navicat
cp -r ~/navicat ~/navicat-patched
sudo umount ~/navicat
rm -rf ~/navicat

使用 navicat-patcher 替换官方公钥

bin/navicat-patcher ~/navicat-patched

使用 navicat-keygen 生成序列号和激活码

bin/navicat-keygen –text ./RegPrivateKey.pem

选择navicat产品,这里选择1,peemium

选择产品语言,这里选择1,简体中文

选择产品的版本,这里填15

然后会自动生成序列号

然后填写名称,组织

填写后断网,打开navicat,输入序列号,点击激活,

点击手动激活,复制请求码,输入到terminal,

连续两次enter,获取激活码,输入到navicat,然后点击激活,这里激活完成

redis基础教程-redis数据类型list命令之linsert-lset的基础用法

redis linsert 是向list中添加元素的。语法格式为linsert key before|after privot value

在引用值枢轴之前或之后在键中存储的列表中插入元素。
当key不存在时,认为是空列表,不进行任何操作 。
当键存在但不包含列表值时返回错误。

继续阅读“redis基础教程-redis数据类型list命令之linsert-lset的基础用法”

redis基础教程系列list数据类型命令lindex的基础用法

redis的lindex命令是获取指定位置的元素。

返回存储在 key 的列表中索引 index 处的元素。索引从零开始,因此 0 表示第一个元素,1 表示第二个元素,依此类推。负索引可用于指定从列表尾部开始的元素。这里,-1 表示最后一个元素,-2 表示倒数第二个,依此类推

继续阅读“redis基础教程系列list数据类型命令lindex的基础用法”